*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{--stage-top:100px;--stage-left:0px;--stage-bottom:0px;background:#f6f3f4;font-family:system-ui,-apple-system,"PingFang TC",sans-serif;color:#664755}#stage{position:fixed;top:var(--stage-top);left:var(--stage-left);right:0;bottom:var(--stage-bottom);touch-action:pan-y}canvas{display:block;width:100%;height:100%;outline:none;cursor:grab}canvas:active{cursor:grabbing}button,select{font:500 13px/1.4 system-ui,-apple-system,"PingFang TC",sans-serif;appearance:none;border:0;color:#806072;cursor:pointer}button{background:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b57c98;outline-offset:3px}[hidden]{display:none!important}#toolbar{position:fixed;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);width:calc(100% - 32px);max-width:780px;padding:7px 10px 10px;border:1px solid #e5dce0;border-radius:20px;background:#fffffff2;z-index:5;backdrop-filter:blur(12px)}.top-line{display:flex;align-items:center;gap:18px}.primary{display:flex;flex:1;gap:4px}.primary button{flex:1;min-height:42px;border-radius:13px;padding:8px 12px}.primary button[aria-pressed=true],#parts-toggle[aria-expanded=true]{background:#a86e87;color:white}.adjust{display:flex;align-items:center;gap:12px;width:220px;padding:3px 5px}.adjust output{min-width:42px}output{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#9a7889}.layer-header{display:flex;align-items:center;gap:8px;padding-top:9px;border-top:1px solid #f0e5eb;margin-top:5px}.layer-header select{background:#f5edf1;border-radius:9px;padding:8px 10px;width:180px;max-width:calc(100% - 60px)}.layer-header button{min-height:36px;padding:5px 12px;border-radius:9px;background:#f8f4f6}.parameters{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:6px 6px 0}.parameter{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-width:0}.parameter span,.progress span{font-size:12px;color:#987587}.parameter output{text-align:right;min-width:46px}.parameter input{grid-column:1/-1;margin:0}.progress{display:flex;align-items:center;gap:13px;margin:0 6px;font-size:12px}.progress span{min-width:25px}input[type=range]{appearance:none;-webkit-appearance:none;min-width:0;width:100%;height:32px;background:transparent;cursor:ew-resize;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:#dfcbd5}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-7.5px;border:3px solid white;border-radius:50%;background:#b37a95;box-shadow:0 1px 5px #9d648740}input[type=range]::-moz-range-track{height:3px;border-radius:3px;background:#dfcbd5}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:3px solid white;border-radius:50%;background:#b37a95}#parts-panel{position:fixed;left:16px;top:calc(var(--stage-top) + 4px);bottom:max(16px,env(safe-area-inset-bottom));width:220px;background:#fffffff0;border:1px solid #e5dce0;border-radius:18px;padding:10px;z-index:5;display:flex;flex-direction:column;backdrop-filter:blur(12px)}.parts-header{display:flex;align-items:center;gap:7px;padding:1px 3px 9px;border-bottom:1px solid #eee2e9;flex:none}.parts-header h2{margin:0;font-weight:600;font-size:13px;flex:1}.parts-header button{padding:6px 3px;font-size:12px;min-height:32px}.check-all{display:flex;align-items:center;gap:5px;min-height:32px;font-size:12px;cursor:pointer}input[type=checkbox]{accent-color:#a86e87;width:17px;height:17px;margin:0;flex:none;cursor:pointer}#parts-list{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-top:6px;flex:1;min-height:0}.part-row{display:flex;align-items:center;min-height:43px;border-radius:10px;margin-bottom:2px;transition:background .15s}.part-row.selected{background:#f0e0e9}.part-row.off .part-name{color:#baa6b0}.part-check{display:flex;align-items:center;justify-content:center;width:40px;min-height:43px;flex:none;cursor:pointer}.part-name{flex:1;text-align:left;padding:9px 8px 9px 0;min-height:43px;font-size:12px}.part-name[aria-pressed=true]{font-weight:600;color:#925f79}.part-row:hover{background:#f6eff3}#annotations{position:fixed;inset:0;pointer-events:none;z-index:3}#leaders{position:absolute;inset:0;width:100%;height:100%}svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}#leaders polyline{stroke:#a98b9a;stroke-width:1}#leaders circle{fill:white;stroke:#9f7089;stroke-width:1.2}#leaders .active polyline{stroke:#8b5672;stroke-width:1.6}.callout{position:absolute;width:150px;background:#f6f3f4eb;padding:5px 7px;border-radius:6px;pointer-events:auto}.callout-head{width:100%;display:flex;align-items:center;gap:6px;text-align:left;padding:3px 0;font-size:12px;color:#785767;font-weight:600;min-height:30px}.callout-head span{flex:1}.callout-head svg{width:12px;height:12px;flex:none}.callout-head[aria-expanded=true] svg{transform:rotate(180deg)}.callout p{font-size:11px;line-height:1.65;color:#8f7581;margin:5px 0 3px}@media(max-width:900px){#toolbar{max-width:720px}.adjust{width:180px}.top-line{gap:10px}.primary button{padding:8px}.parameters{gap:20px}}@media(max-width:599px){#toolbar{width:calc(100% - 24px);top:max(10px,env(safe-area-inset-top));border-radius:18px;padding:6px 9px 8px}.top-line{flex-direction:column;gap:0}.primary{width:100%}.primary button{min-height:42px;font-size:13px}.adjust{width:100%;gap:12px;height:31px;padding:0 6px}.layer-header{padding-top:6px;margin-top:2px}.layer-header select{width:auto;flex:1;min-width:0;height:34px;padding:6px 9px}.layer-header button{min-height:34px}.parameters{gap:18px;padding-top:7px}.parameter span,.progress span{font-size:11px}.parameter output{font-size:11px}input[type=range]{height:30px}.progress{height:29px}#parts-panel{left:10px;right:10px;top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:auto;height:min(36dvh,292px);border-radius:20px;padding:9px 10px 8px}#parts-list{display:grid;grid-template-columns:1fr 1fr;align-content:start;column-gap:6px}.part-name{font-size:11px;padding-right:4px}.part-check{width:34px;min-height:44px}.part-row{min-height:44px}.callout{width:104px;padding:3px 5px}.callout-head{font-size:10px;min-height:28px;gap:3px}.callout-head svg{width:10px;height:10px}.callout p{font-size:10px;line-height:1.5}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:600px){#layer-panel{display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:20px;border-top:1px solid #f0e5eb;margin-top:5px;padding-top:8px}.layer-header{grid-row:1/3;align-self:center;margin:0;padding:0;border:0}.layer-header select{flex:1;min-width:0;width:auto;max-width:none}.layer-header button{padding:5px 8px;min-width:44px}.parameters{grid-column:2;padding-top:0}.progress{grid-column:2}}@media(max-width:599px){.callout-head{font-size:11px;min-height:38px}.callout p{font-size:11px}}
/* The model is one section of a scrollable page; its controls stay inside that section. */
html{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}body{height:auto;min-height:100%;overflow:visible}#viewer{position:relative;height:100svh;min-height:620px;isolation:isolate}#viewer #stage,#viewer #toolbar,#viewer #parts-panel,#viewer #annotations{position:absolute}#viewer #annotations{overflow:hidden}a:focus-visible,summary:focus-visible{outline:2px solid #b57c98;outline-offset:4px}#product-notes{max-width:940px;margin:0 auto;padding:54px 34px 96px;scroll-margin-top:24px}.notes-header{display:flex;align-items:flex-start;gap:32px;margin-bottom:32px}.notes-header>div{flex:1;min-width:0}.notes-header h1{font-size:25px;font-weight:600;letter-spacing:.015em;line-height:1.5;margin:0 0 12px;color:#624451}.notes-header p{font-size:14px;line-height:1.9;color:#8d7480;max-width:640px;margin:0 0 17px}.notes-header>a{font-size:12px;color:#9a7889;white-space:nowrap;text-underline-offset:4px;min-height:44px;display:flex;align-items:center}.development-state{display:flex;flex-wrap:wrap;gap:8px}.development-state span{font-size:11px;line-height:1.5;color:#a07890;padding:5px 10px;border:1px solid #e4d4dd;border-radius:6px;background:#fbf7f9}.product-accordion{border-top:1px solid #e1d2db}.product-section{border-bottom:1px solid #e1d2db}.product-section>summary{list-style:none;display:flex;align-items:center;gap:16px;min-height:78px;padding:20px 4px;cursor:pointer;color:#785568;font-size:16px;font-weight:500}.product-section>summary::-webkit-details-marker,.mode-list summary::-webkit-details-marker{display:none}.product-section>summary::after,.mode-list summary::after{content:'+';font-size:21px;font-weight:300;line-height:1;flex:none;width:20px;text-align:center;color:#b28b9f}.product-section[open]>summary::after,.mode-list details[open]>summary::after{content:'−'}.product-section>summary .section-meta{margin-left:auto;color:#a78d9a;font-size:11px;font-weight:400;white-space:nowrap}.section-content{padding:0 4px 26px;color:#816b76;font-size:14px;line-height:1.9}.section-content>p{margin:0 0 20px;max-width:730px}.feature-list{margin:0}.feature-list>div{display:grid;grid-template-columns:135px 1fr;gap:24px;padding:17px 0;border-top:1px solid #eadee5}.feature-list dt{font-weight:500;color:#785668}.feature-list dd{margin:0;max-width:640px}.source-link{display:block;margin-top:6px;color:#aa7893;font-size:12px;text-decoration:underline;text-underline-offset:4px;width:fit-content}.section-content .content-note{color:#a08292;font-size:12px;margin:20px 0 0;line-height:1.8;border-left:2px solid #dbc2d1;padding-left:14px}.assembly-path,.signal-flow{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:7px 0;line-height:1.7;font-size:12px;color:#99687f}.assembly-path li,.signal-flow li{display:flex;align-items:center}.assembly-path li:not(:last-child)::after,.signal-flow li:not(:last-child)::after{content:'→';color:#bd9eae;padding:0 12px}.mode-list{border-top:1px solid #eadee5}.mode-list details{border-bottom:1px solid #eadee5}.mode-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;cursor:pointer;font-size:14px;color:#8d6278}.mode-list details>div{padding:0 18px 17px 0}.mode-list p{margin:0 0 9px}.mode-list .mode-example{font-size:12px;color:#a68a98;margin:0}.development-list{margin:0;padding:0;list-style:none}.development-list li{padding:16px 0;border-top:1px solid #eadee5}.development-list strong{font-weight:500;color:#795569}#product-notes a:hover{color:#a16583}@media(max-width:599px){#viewer{min-height:600px}#product-notes{padding:35px 20px 68px;scroll-margin-top:16px}.notes-header{gap:12px;margin-bottom:25px}.notes-header h1{font-size:23px}.notes-header p{font-size:13px;line-height:1.85}.notes-header>a{font-size:11px}.development-state span{font-size:10px}.product-section>summary{min-height:70px;gap:9px;font-size:15px;padding:18px 0;flex-wrap:wrap}.product-section>summary .section-meta{font-size:10px}.product-section>summary::after{font-size:20px;width:16px}.section-content{font-size:13px;padding:0 0 22px}.feature-list>div{grid-template-columns:1fr;gap:5px;padding:14px 0}.feature-list dt{font-size:13px}.feature-list dd{font-size:13px}.assembly-path,.signal-flow{display:block;margin-bottom:20px}.assembly-path li,.signal-flow li{display:block;padding:3px 0}.assembly-path li:not(:last-child)::after,.signal-flow li:not(:last-child)::after{content:'↓';display:block;padding:0;color:#be9aaf;font-size:11px;line-height:1.3}.mode-list summary{min-height:58px;font-size:13px}.mode-list details>div{padding-right:0}.mode-list .mode-example,.section-content .content-note{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#product-notes{min-height:100svh;scroll-margin-top:0}
#toolbar .top-line{flex-direction:row;gap:12px}#toolbar .primary{width:auto;min-width:0}.face-count{font-size:11px;color:#9a7889;white-space:nowrap;flex:none;padding:0 5px}#layer-panel{display:block}#layer-panel .parameters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:8px 6px 0}.expansion-line{display:flex;align-items:center;gap:10px}.expansion-line .progress{flex:1;min-width:0}.expansion-line>button{min-height:36px;min-width:44px;padding:5px 10px;font-size:12px;color:#98758a}.part-row{padding:0 10px;gap:8px;cursor:pointer}.part-name{padding:9px 0;cursor:pointer}@media(max-width:599px){#toolbar .top-line{gap:6px}#toolbar .primary button{padding:8px 5px}.face-count{font-size:10px;padding:0 2px}#layer-panel{border-top:1px solid #f0e5eb;margin-top:4px;padding-top:2px}.part-row{padding:0 7px;gap:7px}.expansion-line>button{padding:5px 6px}}
/* Product story: compact disclosures, with the deliberately useless persona up front. */
.product-kicker{display:block;font-size:12px;line-height:1.6;letter-spacing:.025em;color:#a5758e;margin:0 0 12px}.notes-header h1{font-size:clamp(27px,3.5vw,36px);line-height:1.4;letter-spacing:-.025em;max-width:650px}.notes-header p{max-width:650px}.shutdown-steps{margin:0 0 22px;padding-left:22px}.shutdown-steps li{padding:11px 0 11px 7px}.shutdown-steps li+li{border-top:1px solid #eadee5}.shutdown-steps strong{color:#795569;font-weight:500}.subscription-timing{display:grid;grid-template-columns:155px 1fr;gap:12px 22px;margin:0 0 22px;padding:19px 20px;background:#efe4eb;border-radius:12px;font-size:13px}.subscription-timing strong{font-weight:500;color:#85566d}.subscription-timing span{min-width:0}@media(max-width:599px){.notes-header{display:block}.notes-header h1{font-size:28px}.notes-header>a{width:fit-content;margin-top:12px}.product-kicker{font-size:11px;margin-bottom:10px}.product-section>summary{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:5px 10px}.product-section>summary>.section-meta{grid-column:1;grid-row:2;margin:0;white-space:normal}.product-section>summary::after{grid-column:2;grid-row:1/3}.subscription-timing{grid-template-columns:1fr;gap:3px;padding:16px}.subscription-timing span+strong{margin-top:12px}.shutdown-steps{padding-left:18px}.shutdown-steps li{padding-left:3px}}

.notes-header h1{font-size:clamp(26px,3.2vw,34px);line-height:1.3;letter-spacing:-.025em;max-width:610px;font-weight:600}.product-kicker{letter-spacing:.08em;font-size:11px}@media(max-width:599px){.notes-header h1{font-size:28px;line-height:1.35}.notes-header p{margin-top:17px}}

#viewer #stage,#viewer canvas{touch-action:pan-y}#viewer canvas{cursor:auto}#viewer canvas:active{cursor:grabbing}

