:root{--ink:#121918;--teal:#185556;--mint:#3e9996;--amber:#e9a332;--cream:#fff6e7;--line:#dcded4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f5ef;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,select,input{font:inherit}a{color:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--amber);outline-offset:3px}header{min-height:86px;background:var(--ink);border-top:3px solid var(--amber);display:flex;align-items:center;padding:12px 4.5%;gap:45px;color:var(--cream)}.brand{display:flex;align-items:center;gap:18px;text-decoration:none}.brand img{width:175px;height:48px;object-fit:contain}.brand span{border-left:1px solid var(--mint);padding-left:18px;font-size:23px;letter-spacing:-1px}header nav{display:flex;gap:28px}header nav a{text-decoration:none;font-size:13px;color:#ddd}.made{margin-left:auto;font-size:10px;letter-spacing:1.5px;color:#b0bfba}main{max-width:1500px;margin:auto;padding:0 4.5%}.intro{display:flex;justify-content:space-between;align-items:center;padding:55px 0 40px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2px;color:var(--teal);margin:0 0 18px}h1{font-size:clamp(45px,5.4vw,76px);line-height:1.02;letter-spacing:-4px;margin:0;font-weight:500}em{font-family:Georgia,serif;font-weight:normal;color:var(--teal)}.intro-copy{padding:25px 6% 0 0}.intro-copy>p{font-size:18px;line-height:1.65;color:#53615b}.pill{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1px}.pill i{background:var(--mint);width:6px;height:6px;border-radius:50%}.studio{display:grid;grid-template-columns:350px 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white;scroll-margin-top:20px}aside{border-right:1px solid var(--line)}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;font-size:10px;letter-spacing:1.8px;border-bottom:1px solid var(--line)}.text-button{border:0;background:none;color:var(--teal);font-size:12px;letter-spacing:0}details{border-bottom:1px solid var(--line)}summary{padding:20px 24px;cursor:pointer;list-style:none;font-size:15px;font-weight:bold;display:flex;align-items:center;gap:14px}summary:after{content:'+';margin-left:auto;font-weight:normal}details[open] summary:after{content:'−'}summary b{font-size:10px;color:var(--mint);font-weight:normal}.fields{padding:0 24px 22px}label{display:block;font-size:11px;color:#53615b;margin-bottom:9px}select{width:100%;padding:12px 30px 12px 12px;border:1px solid var(--line);background:#f9faf7;border-radius:5px;color:var(--ink);font-size:13px}.hint{font-size:11px;line-height:1.6;color:#758078;margin:10px 0 16px}.color-label{display:flex;justify-content:space-between}.color-label span{font-size:10px;color:#7b847e}.color-row{display:flex;gap:10px;align-items:center}input[type=color]{width:34px;height:34px;border:1px solid #bbb;padding:2px;border-radius:50%;background:white;cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:1px}input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}.swatches{display:flex;gap:8px}.swatches button{width:23px;height:23px;border-radius:50%;border:1px solid #0002}.swatches button:hover{outline:2px solid var(--mint);outline-offset:2px}.light-options{display:flex;gap:9px}.light-options label{flex:1;margin:0;position:relative;cursor:pointer}.light-options input{position:absolute;left:10px;top:12px;accent-color:var(--teal)}.light-options span{display:block;border:1px solid var(--line);padding:14px 8px 12px 32px;border-radius:5px}.light-options input:checked+span{border-color:var(--mint);background:#f0f7f3}.light-options strong{display:block;font-size:13px;color:var(--ink)}.light-options small{display:block;font-size:9px;margin-top:7px}.download{padding:24px;background:#f6f8f3}.download strong{font-size:14px}.download p{font-size:11px;line-height:1.6;color:#758078}#download{width:100%;padding:16px;background:var(--teal);color:white;border:0;border-radius:5px;text-align:left;font-weight:bold;font-size:13px;margin:7px 0}#download span{float:right;font-size:18px}#download:disabled{opacity:.6;cursor:wait}.download .hint{font-size:10px;margin-bottom:0}.preview{position:relative;background:radial-gradient(ellipse at 50% 45%,#f2efdf 0,#e9ece2 70%);display:flex;flex-direction:column;min-width:0}.preview-top{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;z-index:1}.view-button{background:#ffffff80;border:1px solid #cfd5cb;border-radius:4px;padding:9px 12px;font-size:11px;color:#53615b}#canvas{position:relative;flex:1;min-height:470px;overflow:hidden}#canvas canvas{display:block;width:100%;height:100%;position:absolute;inset:0}#status{position:absolute;z-index:2;top:15px;left:20px;right:20px;text-align:center;color:var(--teal);font-size:12px;pointer-events:none}.preview-bottom{padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.preview-bottom h2{margin:0;font-size:25px;font-weight:normal;letter-spacing:-1px}.preview-bottom .eyebrow{margin-bottom:9px;font-size:9px}.preview-bottom p:last-child{font-size:10px;color:#7a8479}.gesture{border-top:1px solid #d4dacd;padding:15px;text-align:center;font-size:10px;color:#7a8479}.gesture span{padding:0 12px}.assembly{padding:75px 0 55px;display:grid;grid-template-columns:1fr 1fr;gap:70px}.assembly h2{font-size:44px;line-height:1.1;letter-spacing:-2px;font-weight:normal;margin:0 0 20px}.assembly p{color:#758078;line-height:1.8;font-size:12px}.guide-links{display:flex;gap:22px;margin-top:25px}.guide-links a{color:var(--teal);font-size:11px;text-underline-offset:5px}ol{list-style:none;counter-reset:steps;padding:0;margin:0}ol li{counter-increment:steps;position:relative;padding:0 0 22px 42px;font-size:12px;color:#53615b;line-height:1.7}ol li:before{content:'0' counter(steps);position:absolute;left:0;color:var(--mint);font-size:11px}ol strong{display:block;color:var(--ink);font-size:14px;font-weight:normal;margin-bottom:4px}.safety{border-top:1px solid var(--line);padding-top:16px;font-size:10px!important}.print-notes{border-top:1px solid var(--line);display:grid;grid-template-columns:140px 1fr 1fr;gap:30px;padding:28px 0 40px}.print-notes span{font-size:10px;letter-spacing:1px}.print-notes p{margin:0;font-size:10px;line-height:1.8;color:#758078}footer{background:var(--ink);color:var(--cream);padding:32px 4.5%;display:flex;justify-content:space-between;align-items:center;gap:30px}footer p{font-size:10px;margin:10px 0 0;color:#aaa}footer nav{display:flex;flex-wrap:wrap;gap:22px;max-width:550px}footer nav a{text-decoration:none;font-size:11px;color:#ccc}@media(min-width:1500px){#canvas{min-height:550px}}@media(max-width:950px){.made{display:none}header{gap:25px;justify-content:space-between}.studio{grid-template-columns:310px 1fr}.fields{padding-left:18px;padding-right:18px}.swatches{gap:5px}.intro-copy{padding-right:0}.assembly{gap:35px}}@media(max-width:700px){header{padding:12px 5%;flex-wrap:wrap;gap:12px}header nav{gap:22px}header nav a{font-size:11px}.brand img{width:145px;height:40px}.brand span{font-size:21px}main{padding:0 5%}.intro{padding:36px 0 28px;display:block}h1{font-size:53px;letter-spacing:-3px}.intro-copy{padding-top:8px}.intro-copy>p{font-size:14px;line-height:1.5}.studio{display:flex;flex-direction:column}.preview{order:-1;border-bottom:1px solid var(--line)}#canvas{min-height:360px;height:360px}.preview-top{padding:16px}.preview-bottom{padding:14px 20px}.preview-bottom h2{font-size:22px}.gesture{font-size:9px}aside{border-right:0}.assembly{grid-template-columns:1fr;padding:45px 0 30px;gap:35px}.assembly h2{font-size:38px}.print-notes{grid-template-columns:1fr;gap:15px}footer{display:block}footer nav{margin-top:25px;gap:20px}footer .brand img{width:150px}.swatches{gap:12px}}

/* Shared Happy's Print Lab colors, matching CapLab's light and dark themes. */
:root{color-scheme:light;--paper:#fffaf2;--panel:#fff3e2;--panel-soft:#f5ead8;--field:#fffaf2;--ink:#14201e;--muted:#536662;--teal:#185556;--mint:#3e9996;--amber:#e9a332;--line:#d8cec0;--button:#185556;--button-ink:#fff6e7;--selected:#e8f1e8;--stage-start:#fff3e2;--stage-end:#e6e1d6}
:root[data-theme="dark"]{color-scheme:dark;--paper:#0d1719;--panel:#142124;--panel-soft:#17282b;--field:#142326;--ink:#ecf4f2;--muted:#b8cbc9;--teal:#83c4bd;--mint:#6bb8b1;--amber:#f0b447;--line:#3c5559;--button:#f0b447;--button-ink:#17201b;--selected:#243c3e;--stage-start:#2b4247;--stage-end:#122125}
body{background:var(--paper);color:var(--ink)}
header,footer{background:#121918;color:#fff6e7}
header{gap:28px}
header nav a,footer nav a{color:#e2eae5}
.theme-toggle{flex:none;border:1px solid #7ba6a2;border-radius:999px;background:#213b3c;color:#fff6e7;padding:9px 14px;font-size:12px;font-weight:bold;white-space:nowrap}
.theme-toggle:hover{border-color:#e9a332;background:#315355}
.studio{background:var(--panel);border-color:var(--line)}
.intro-copy>p,label,.hint,.download p,.color-label span,.preview-bottom p:last-child,.gesture,.assembly p,ol li,.print-notes p{color:var(--muted)}
.light-options strong,ol strong{color:var(--ink)}
select,input[type="text"]{background:var(--field);color:var(--ink);border:1px solid var(--line)}
input[type="text"]{width:100%;border-radius:5px;padding:12px;font-size:13px;min-height:42px}
input[type="text"]::placeholder{color:var(--muted);opacity:.85}
input[type="color"]{background:var(--field);border-color:var(--line)}
.light-options input{accent-color:var(--teal)}
.light-options input:checked+span{background:var(--selected);border-color:var(--mint)}
.download{background:var(--panel-soft);border-bottom:1px solid var(--line)}
#download{background:var(--button);color:var(--button-ink);min-height:48px}
#download:hover:not(:disabled){filter:brightness(1.1)}
.preview{background:radial-gradient(ellipse at 50% 45%,var(--stage-start) 0,var(--stage-end) 78%)}
.view-button{background:var(--panel);color:var(--muted);border-color:var(--line);min-height:36px}
.view-button:hover{color:var(--ink);border-color:var(--mint)}
.gesture{border-color:var(--line)}
.secondary-button{width:100%;padding:13px 15px;border:1px solid var(--teal);border-radius:5px;background:var(--field);color:var(--teal);font-weight:bold;font-size:13px;min-height:46px}
.secondary-button:hover:not(:disabled){background:var(--selected)}
.secondary-button:disabled{opacity:.6;cursor:wait}
.optional{font-weight:normal;color:var(--muted)}
.request-panel{border-bottom:0}
.request-panel .fields{padding-top:0}
.submission-status{font-size:11px;line-height:1.6;color:var(--teal);overflow-wrap:anywhere;margin-bottom:0}
.submission-status:empty{display:none}
.submission-status[data-state="error"]{color:#a43d26}
[data-theme="dark"] .submission-status[data-state="error"]{color:#ffb39d}
[data-theme="dark"] .swatches button{border-color:#b8cbc955}
[data-theme="dark"] .brand span{border-color:#3e9996}
@media(max-width:1100px){header{gap:20px}.made{display:none}.theme-toggle{margin-left:auto}}
@media(max-width:700px){header{gap:12px}.theme-toggle{padding:8px 11px;font-size:11px}header nav{order:3;width:100%;justify-content:space-between;padding-top:3px}.brand{gap:12px}.brand span{padding-left:12px}.guide-links{flex-wrap:wrap;gap:18px}.preview-bottom{flex-wrap:wrap}.preview-bottom .view-button{margin-left:auto}}
