:root{--ink:#203f63;--muted:#7b8792;--line:#dce2e5;--paper:#fffefb;--orange:#c97952;--bg:#f4f3ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input{font:inherit}button,a,label,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #c97952;outline-offset:4px}[hidden]{display:none!important}header{height:100px;max-width:1440px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit}.brand{text-decoration:none;display:flex;align-items:center;gap:13px;font-family:serif;font-size:23px;font-weight:700;letter-spacing:3px}.brand small{font:8px/2.2 monospace;display:block;letter-spacing:2.2px}.brand-symbol{display:grid;place-items:center;border:1.5px solid var(--ink);width:43px;height:47px;font-size:26px}.header-note{color:var(--muted);font-size:12px;letter-spacing:2px}.local-badge{font-size:11px;background:#e8ece6;padding:6px 12px;border-radius:30px;color:#5b715e}main{max-width:1260px;margin:auto;padding:0 36px}.intro{display:flex;align-items:center;justify-content:space-between;padding:53px 2px 35px}.eyebrow{font:10px/1.7 monospace;letter-spacing:2px;color:var(--orange)}h1{font:500 45px/1.38 "Songti SC","Noto Serif CJK SC",serif;letter-spacing:4px;margin:17px 0 14px}h1 span{color:var(--orange)}.intro p{font-size:13px;color:var(--muted);line-height:1.9;margin:0}.intro-meta{display:flex;align-items:center;gap:24px;text-align:right}.stamp{border:1px solid var(--orange);color:var(--orange);padding:8px 13px;font:20px/1.35 serif;transform:rotate(7deg);letter-spacing:3px}.intro-meta b{color:var(--ink);font-size:11px;font-weight:500}.steps{display:flex;margin-bottom:24px;border-bottom:1px solid #cfd7dd;gap:28px}.steps button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 2px;color:#8e979e;font-size:12px;display:flex;gap:8px;align-items:center}.steps button.active{color:var(--ink);border-color:var(--ink)}.steps button.done{color:#5c7c79}.steps i{font:10px monospace;font-style:normal}.studio{display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:var(--paper);border:1px solid #d5dce1;border-radius:5px;box-shadow:0 9px 30px #203f6304;overflow:hidden}.view-panel{background:#e8edf0;padding:24px 32px 15px;position:relative;border-right:1px solid #d5dce1;display:flex;flex-direction:column}.panel-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1px}.tiny{font-size:10px;line-height:1.8;color:#84919b}.sheet-stage{min-height:505px;display:flex;align-items:center;justify-content:center;position:relative;padding:26px 10px 14px;background:radial-gradient(ellipse at center,#f5f7f7 0,transparent 65%)}#sheet{max-width:290px;max-height:460px;width:auto;height:auto;background:white;box-shadow:1px 13px 25px #203f6326;transform:none}#portrait{width:280px;max-width:90%;height:auto;max-height:430px;object-fit:contain;box-shadow:0 8px 25px #203f6320;cursor:grab;touch-action:none}#portrait:active{cursor:grabbing}.drag-hint{position:absolute;bottom:19px;font-size:10px;background:#fffbed;padding:3px 10px;border-radius:10px;color:#70818d}.view-bottom{display:flex;gap:6px;align-items:center;font-size:10px;margin-top:auto}.view-bottom>span:last-child{margin-left:auto;font-family:monospace}.dot{background:#6c8c83;width:5px;height:5px;border-radius:50%}.sample-note{font-size:10px;text-align:center;color:#87939c;margin:13px 0 0}.controls{padding:34px 40px;min-width:0}h2{font:500 24px/1.5 serif;letter-spacing:1px;margin:10px 0}.muted{color:var(--muted);font-size:12px;margin:8px 0 22px}.layouts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 17px}.layout{background:#fff;border:1px solid var(--line);border-radius:4px;padding:15px 12px 10px;text-align:left;position:relative;color:var(--ink)}.layout.selected{background:#f0f5f7;border:1.5px solid var(--ink);padding:14.5px 11.5px 9.5px}.layout.selected:after{content:'✓';position:absolute;right:9px;top:6px;font-size:10px}.layout b{display:block;font-size:12px;font-weight:500;margin-top:9px}.layout small{font:9px/1.6 monospace;color:#82909b}.mini{height:52px;width:44px;padding:4px;background:white;border:1px solid #d5dce1;display:grid;gap:2px;align-content:start;grid-template-columns:repeat(3,1fr);box-shadow:1px 2px 3px #203f6310}.mini span{background:#bacfdc;min-height:13px;position:relative;overflow:hidden}.mini span:before{content:'';position:absolute;width:5px;height:6px;background:#52738e;border-radius:50%;top:2px;left:50%;transform:translateX(-50%)}.mini span:after{content:'';position:absolute;width:9px;height:6px;background:#52738e;border-radius:50% 50% 0 0;bottom:0;left:50%;transform:translateX(-50%)}.mini.four{grid-template-columns:repeat(2,1fr)}.mini.four span{height:18px}.mini.two{grid-template-columns:1fr 1fr}.mini.two span{height:31px}.custom{font-size:11px;border-top:1px solid var(--line);padding:10px 0}.custom summary{cursor:pointer}.dimension-fields{display:flex;gap:8px;align-items:end;margin:10px 0}.dimension-fields label{font-size:10px;flex:1}.dimension-fields input{display:block;width:100%;border:1px solid var(--line);padding:6px;border-radius:3px;color:var(--ink)}.info-line{font-size:10px;color:#86929b;margin:12px 0 22px}.primary,.secondary{width:100%;padding:13px 18px;border-radius:3px;transition:background .15s;color:white;background:var(--ink);border:1px solid var(--ink);font-size:12px;letter-spacing:1px;display:block}.primary:hover{background:#315578}.primary span{float:right}.secondary{background:transparent;color:var(--ink);margin:12px 0}.secondary:hover{background:#edf2f4}.subtle{background:#f1f4f5;border:1px solid #d6e0e5;color:var(--ink);border-radius:3px;font-size:11px;padding:8px 12px}.back{background:none;border:0;color:#81909c;display:block;margin:12px auto 0;font-size:11px;padding:5px}.ticket{margin:27px 0 32px;border:1px solid #dbe0df;background:#f8f7ef;padding:25px 24px;position:relative}.ticket>span{font:9px monospace;letter-spacing:2px;color:#8b8f88}.ticket h3{font:22px serif;margin:22px 0 10px}.ticket p{font-size:12px}.ticket-price{border-top:1px dashed #c4cece;padding:16px 0 10px;font-size:12px;display:flex;justify-content:space-between;align-items:center}.ticket strong{font:28px monospace}.ticket small{font-size:10px;color:#87928f}.upload-zone{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px dashed #a7b9c4;background:#f4f7f8;border-radius:4px;padding:31px 15px;cursor:pointer;gap:7px}.upload-zone:hover,.upload-zone.over{border-color:var(--ink);background:#e7eff3}.upload-icon{font-size:30px;font-weight:200;line-height:1.2}.upload-zone b{font-size:13px;font-weight:500}.upload-zone>span:last-of-type{font-size:10px;color:#86939f}.or{text-align:center;font-size:11px;margin:17px;color:#9aa4a9}.camera-frame{position:relative;background:#203f63;aspect-ratio:4/3;border-radius:5px;overflow:hidden;margin-top:18px}video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.face-guide{position:absolute;inset:12% 29% 20%;border:1px dashed #fff9;border-radius:50%}.button-row{display:flex;gap:8px;margin:15px 0}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-top:22px}.tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:9px 0;color:#8b969f;font-size:12px}.tabs [aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.tab-panel{min-height:290px;padding:6px 0 16px}.slider-label{display:block;color:var(--ink);font-size:12px;margin:17px 0}.slider-label output{float:right;color:#8095a4;font:11px monospace}.slider-label input{display:block;width:100%;margin:13px 0 0;accent-color:var(--ink);height:4px;cursor:pointer}.helper{color:#8996a1;font-size:11px;line-height:1.9;margin:18px 0}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:13px 8px;margin:23px 0}.swatch{border:0;background:none;color:var(--muted);padding:0;font-size:10px}.swatch span{display:block;width:36px;height:36px;border-radius:50%;margin:0 auto 6px;box-shadow:0 0 0 1px #203f6314}.swatch[aria-pressed=true] span{outline:1.5px solid var(--ink);outline-offset:4px}.swatch[aria-pressed=true]{color:var(--ink)}.check{font-size:11px;display:flex;gap:7px;align-items:center;color:#7e8a92}.check input{accent-color:var(--ink)}fieldset{margin:0;padding:0;border:0}fieldset:disabled{opacity:.35}#faceStatus{margin:10px 0}.complete-card{display:flex;gap:14px;align-items:center;background:#f0f4ef;border:1px solid #d8e2d5;padding:21px;margin:28px 0 30px}.complete-card>span{display:grid;place-items:center;width:32px;height:32px;background:#dee9dc;color:#5e7b63;border-radius:50%}.complete-card b{font-size:13px;font-weight:500}.complete-card p{font:10px/1.7 monospace;margin:5px 0;color:#7e9383}.footnotes{display:grid;grid-template-columns:repeat(3,1fr);padding:36px 3px 43px;gap:20px}.footnotes>span{font:11px monospace;color:#b69e87;display:grid;grid-template-columns:26px 1fr}.footnotes b{font:11px/1.8 sans-serif;color:#6d7b86;font-weight:400}.footnotes small{grid-column:2;font:10px/2 sans-serif;color:#9bA4a9}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;padding:23px 6%;font:9px/1.7 monospace;color:#95a0a7}footer span:first-child{font:13px serif;color:#657b8e}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#203f63;color:white;box-shadow:0 6px 30px #203f6330;padding:12px 22px;font-size:12px;border-radius:5px;z-index:15;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;width:max-content}#toast.show{opacity:1}#busy{position:fixed;inset:0;background:#203f634a;backdrop-filter:blur(3px);display:grid;place-items:center;z-index:20}.busy-card{display:flex;flex-direction:column;align-items:center;gap:18px;background:var(--paper);padding:40px;border-radius:6px;max-width:90vw}.busy-card b{font-size:14px;font-weight:500}.busy-card small{font-size:10px;color:var(--muted)}.spinner{width:28px;height:28px;border:2px solid #d7e0e5;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.printing{animation:print 1s ease both}@keyframes print{from{clip-path:inset(0 0 100%);transform:translateY(-30px)}to{clip-path:inset(0);transform:translateY(0)}}@media(max-width:850px){header{padding:0 25px;height:82px}.header-note{display:none}.intro-meta{gap:14px}.controls{padding:28px}.view-panel{padding:22px}.steps{gap:22px}.studio{grid-template-columns:.9fr 1fr}h1{font-size:38px}.local-badge{font-size:9px}.footnotes{gap:12px}.footnotes b{font-size:10px}}@media(max-width:640px){header{padding:0 20px;height:76px}.brand{font-size:19px;gap:10px;letter-spacing:2px}.brand small{font-size:7px}.brand-symbol{width:34px;height:40px;font-size:23px}.local-badge{font-size:8px;padding:5px 8px}main{padding:0 19px}.intro{padding:30px 0 20px}.intro .eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:32px;line-height:1.4;margin:12px 0;letter-spacing:3px}.intro p{font-size:11px}.intro-meta{align-self:center}.intro-meta p{display:none}.stamp{font-size:17px;padding:7px 9px}.steps{gap:0;justify-content:space-between;margin-bottom:17px}.steps button{font-size:10px;gap:5px;padding:10px 1px}.steps i{font-size:9px}.studio{grid-template-columns:1fr}.view-panel{border-right:0;border-bottom:1px solid #d5dce1;padding:16px 22px}.sheet-stage{min-height:290px;padding:20px 0}#sheet{max-height:270px;max-width:210px}#portrait{max-height:310px;max-width:230px}.drag-hint{bottom:4px}.view-bottom{font-size:9px}.panel-top{font-size:10px}.sample-note{font-size:9px;margin-top:8px}.controls{padding:25px 23px 27px}h2{font-size:23px}.layouts{gap:10px;margin-top:18px}.layout{padding:12px 15px}.layout.selected{padding:11.5px 14.5px}.mini{float:left;margin-right:13px;margin-top:2px}.layout b{font-size:11px;margin-top:4px}.layout small{font-size:8px}.mini{width:37px;height:46px}.mini.four span{height:15px}.mini.two span{height:27px}.layout:after{font-size:9px}.muted{margin-bottom:17px}.tab-panel{min-height:260px}.footnotes{grid-template-columns:1fr;padding:25px 4px;gap:15px}.footnotes>span{grid-template-columns:26px 1fr}.footnotes small{grid-column:2}.footnotes b{font-size:11px}footer{flex-wrap:wrap;padding:18px 23px;font-size:8px}footer span:last-child{display:none}.ticket{margin:20px 0}.desktop{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* The sheet itself is the original official paper image. */
#sheet{background:transparent;filter:drop-shadow(1px 8px 12px #203f6320);box-shadow:none}.layout:disabled{opacity:.45;cursor:not-allowed}.complete-card small{font-size:10px;color:#6c8071}

.layout-option{min-width:0;display:flex;flex-direction:column}.layout-option .layout{width:100%;flex:1}.layout-source{font-size:10px;text-align:center;margin:5px 0;color:#6a8092;text-underline-offset:3px}

.brush-actions{flex-wrap:wrap}.brush-actions .subtle{flex:1;min-width:96px}.brush-actions [aria-pressed=true]{background:#203f63;color:white;border-color:#203f63}#portrait.brushing{cursor:crosshair}.drag-hint{pointer-events:none}

.layout-translation{display:block;font-size:12px;line-height:1.5;font-weight:400;color:var(--ink);margin-top:5px;overflow-wrap:anywhere}

.brush-size-heading{display:flex;align-items:center;gap:8px;min-height:28px}.brush-size-heading output{float:none;margin-left:auto}.brush-history{display:inline-flex;align-items:center;gap:2px}.history-button{display:inline-grid;place-items:center;width:28px;height:28px;padding:4px;border:0;border-radius:4px;background:transparent;color:var(--ink)}.history-button:hover:enabled{background:#e8eff3}.history-button:disabled{color:#acb5bc;cursor:default}.history-button svg{pointer-events:none}
