.lab-page{padding-top:70px;padding-bottom:60px}.lab-intro{position:relative;margin-bottom:38px}.lab-intro h1{font-size:clamp(34px,4.5vw,60px);letter-spacing:-.055em;line-height:1.15;margin:18px 0}.lab-intro>p:not(.eyebrow){color:var(--muted);font-size:16px}.lab-local{position:absolute;right:0;bottom:8px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:9px}.lab-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:42px}.lab-tabs a{display:flex;gap:10px;align-items:center;min-height:54px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;font-size:12px;text-decoration:none;color:var(--muted);transition:background .2s,border-color .2s}.lab-tabs a span{font-size:10px;opacity:.65}.lab-tabs a[aria-current=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.lab-tabs a:hover{border-color:var(--muted)}.lab-panel[hidden]{display:none!important}.lab-panel-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:25px}.lab-panel-heading h2{font-size:clamp(25px,3vw,36px);letter-spacing:-.035em;margin:10px 0 0}.lab-panel-heading>p{font-size:13px;color:var(--muted);max-width:300px;line-height:1.7}.lab-workbench{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.lab-stage{position:relative;border:1px solid var(--line);border-radius:22px;background:var(--surface);overflow:hidden;aspect-ratio:1.22;min-width:0;background-image:radial-gradient(var(--line) .8px,transparent .8px);background-size:24px 24px}.lab-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-6px}.stage-label,.stage-hint{position:absolute;font-size:10px;letter-spacing:.1em;color:var(--muted);pointer-events:none;left:24px}.stage-label{top:24px}.stage-hint{bottom:23px;letter-spacing:.03em}.lab-tools{display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);min-width:0}.lab-tools label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:var(--muted)}.lab-tools select,.lab-tools textarea{width:100%;background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:11px;font:inherit;font-size:13px}.lab-range span{display:flex;justify-content:space-between;gap:8px}.lab-range output{color:var(--ink);font-variant-numeric:tabular-nums}.lab-range input{accent-color:var(--blue);width:100%;margin:0;height:24px;cursor:pointer}.lab-tools input[type=color]{width:100%;height:36px;background:var(--paper);border:1px solid var(--line);border-radius:8px;cursor:pointer}.lab-page button,.file-button{min-height:44px;padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s;text-align:center;text-decoration:none}.lab-page button:hover,.file-button:hover{border-color:var(--muted)}.lab-page button:disabled{opacity:.55;cursor:wait}.lab-page .lab-primary{background:var(--ink);color:var(--surface);border:1px solid var(--ink);padding:13px 14px;border-radius:10px;min-height:44px;text-align:center;text-decoration:none;display:block;font-size:12px}.lab-page [hidden]{display:none!important}.lab-page :focus-visible{outline:2px solid var(--blue);outline-offset:3px}.tool-kicker{font-size:10px;letter-spacing:.14em;color:var(--muted);margin:0 0 4px}.lab-actions{display:flex;gap:8px}.lab-actions>*{flex:1}.lab-tools p{font-size:13px;line-height:1.7;margin:0;color:var(--muted)}.lab-tools h3{font-size:18px;margin:0}.lab-tools .lab-fine{font-size:11px;line-height:1.8}.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.file-button:focus-within{outline:2px solid var(--blue);outline-offset:3px}.shelf-heading{display:flex;align-items:center;justify-content:space-between;margin:40px 0 18px;gap:16px}.shelf-heading h3{font-size:18px;margin:0}.shelf-heading>div{display:flex;gap:8px}.object-shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.shelf-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface)}.shelf-card canvas{width:100%;aspect-ratio:1.25;display:block}.shelf-card p{font-size:10px;color:var(--muted)}.shelf-card>div{display:flex;gap:6px}.shelf-card button{flex:1}.shelf-empty{font-size:13px;color:var(--muted);grid-column:1/-1;padding:28px 0}.part-buttons{display:flex;flex-wrap:wrap;gap:6px}.part-buttons button{padding:8px 11px;min-height:38px}.part-buttons button[aria-pressed=true]{border-color:var(--blue);color:var(--blue)}.maze-clock{font-size:46px;letter-spacing:-.055em;font-variant-numeric:tabular-nums;line-height:1.2}.maze-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.maze-pad button{font-size:19px;touch-action:none;user-select:none}.maze-pad button:first-child{grid-column:2}.maze-pad button:nth-child(2){grid-column:1}.photo-stage.is-over{border-color:var(--blue)}.lens-stage{background:#e5e6e8}.lens-stage .stage-label{background:#ffffffd9;border-radius:6px;padding:8px;color:#303640;font-variant-numeric:tabular-nums}.star-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.star-list button{text-align:left;display:flex;flex-direction:column;gap:8px;padding:18px}.star-list time{font-size:11px;color:var(--muted)}#star-detail{display:flex;flex-direction:column;gap:12px}#star-detail a{font-size:12px;color:var(--blue)}.lab-feedback{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:12px 20px;border-radius:12px;z-index:30;max-width:90vw;font-size:13px;pointer-events:none;box-shadow:0 3px 25px #0002}.lab-feedback:empty{display:none}.lab-footnote{font-size:11px;line-height:1.8;color:var(--muted);margin-top:40px}.lab-panel{scroll-margin-top:100px}
@media(max-width:1050px){.lab-tabs{grid-template-columns:repeat(3,1fr)}.lab-local{position:static}.lab-workbench{grid-template-columns:minmax(0,1fr) 245px}.lab-tools{padding:19px}.object-shelf{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.lab-page{padding-top:40px}.lab-intro{margin-bottom:24px}.lab-tabs{gap:6px;margin-bottom:30px}.lab-tabs a{padding:10px 8px;font-size:11px;gap:6px}.lab-panel-heading{display:block}.lab-panel-heading>p{max-width:none;margin-bottom:20px}.lab-workbench{grid-template-columns:1fr}.lab-stage{aspect-ratio:1.12}.lab-tools{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lab-tools>.lab-fine,.lab-tools>.tool-kicker,.lab-tools>.part-buttons,.lab-tools>h3,.lab-tools>#pc-part-description,.lab-tools>#photo-progress,.lab-tools>#maze-status,.lab-tools>#star-detail,.lab-tools>#stars-status{grid-column:1/-1}.lab-tools label:has(textarea){grid-column:1/-1}.object-shelf{grid-template-columns:repeat(2,1fr)}.shelf-heading{align-items:start;flex-direction:column}.star-list{grid-template-columns:1fr}.stage-label{top:17px;left:18px}.stage-hint{bottom:16px;left:18px}.maze-pad{grid-column:1/-1;max-width:230px;width:100%;justify-self:center}.lab-intro h1{font-size:36px}.lab-tabs a span{display:none}}
.lab-export{margin-top:30px;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.lab-export summary{cursor:pointer;font-size:15px}.lab-export a{display:block;color:var(--blue);font-size:13px;margin:18px 0}.lab-export img{display:block;width:100%;max-width:650px;border-radius:12px;background:var(--paper)}.lab-export p{font-size:12px;color:var(--muted)}.lab-export textarea{width:100%;height:150px;margin-top:15px;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:12px;box-sizing:border-box}
