/* inside.css — /inside/ ("No magic. Cut the lamp open."): the workshop stage (the hero), the parts (a bento of clay cards; a
   workbench row on phones), the wall of tools, the lamp whole again, and a part's detail panel. Prefix in-.
   Everything is built from kit.css (tokens, clay recipes, sheets, buttons); the minis are in inside-minis.css, the request in inside-flow.css. */

html.in-root{background:linear-gradient(var(--plum-700) 50%,var(--plum-900) 50%)}
.in-noscript{padding:40px 0;color:var(--ink-2)}
.in-btn-i svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ── the workshop stage ───────────────────────────────────────────────────────────────────────────────────────────── */
.in-hero{--ink:var(--cream-100);--ink-2:#ecd2c4;--ink-3:#d6b6bf;position:relative;isolation:isolate;overflow:clip;color:var(--cream-100);
  padding:clamp(112px,15vh,156px) 0 calc(clamp(64px,8vh,104px) + var(--k-lap));
  background:radial-gradient(1100px 700px at 6% -14%,rgba(255,214,176,.17),rgba(255,214,176,0) 62%),
    radial-gradient(900px 640px at 72% 52%,rgba(170,32,96,.46),rgba(170,32,96,0) 70%),
    radial-gradient(800px 500px at 0% 100%,rgba(30,0,14,.55),rgba(30,0,14,0) 70%),
    linear-gradient(180deg,#4d0b2a 0%,#3b0822 52%,#2b051a 100%)}
.in-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.34;mix-blend-mode:screen;background-image:var(--k-grain-light)}
.in-hero :focus-visible{outline-color:var(--gold-300)}
.in-hero-in{width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto;display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  grid-template-rows:1fr auto auto 1fr;grid-template-areas:". stage" "head stage" "body stage" ". stage";column-gap:clamp(28px,4.4vw,76px)}
.in-hero-head{grid-area:head;position:relative;z-index:2}
.in-hero-body{grid-area:body;position:relative;z-index:2}
.in-eyebrow{color:var(--gold-300)}
.in-h1{margin-top:22px;font-size:clamp(2.6rem,4.9vw,4.75rem);font-weight:800;font-stretch:92%;letter-spacing:-.035em;line-height:1.04;color:var(--cream-50);text-shadow:0 2px 0 rgba(20,0,10,.3),0 18px 44px rgba(20,0,10,.45)}
.in-hl{position:relative;display:inline-block;margin-block:0 .16em; margin-inline:-.04em 0;padding:.04em .3em .11em;border-radius:.44em;white-space:nowrap;color:var(--plum-700);text-shadow:0 1px 0 rgba(255,255,255,.45);
  background:var(--k-grain),var(--k-gold-clay);box-shadow:var(--k-gold-shadow),0 22px 34px -16px rgba(20,0,10,.7);transform:rotate(-2.2deg);transform-origin:20% 90%}
.in-hl::after{content:"";position:absolute;inset-inline-end:.22em;bottom:-.27em;width:.46em;height:.4em;background:#efae1e;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath d='M0 0H72C74 34 84 62 100 90C52 82 14 52 0 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath d='M0 0H72C74 34 84 62 100 90C52 82 14 52 0 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.in-h1b{display:block;margin-top:.06em;font-size:.7em;letter-spacing:-.03em;line-height:1.04}
.in-lead{margin-top:clamp(20px,2.4vw,28px);max-width:31em;color:var(--ink-2)}
.in-hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.in-hero-cta .k-btn{padding:0 22px}
.in-hero .k-btn--ghost{color:var(--cream-50);box-shadow:inset 0 0 0 2px rgba(255,241,214,.46)}
.in-hero .k-btn--ghost:hover{background:rgba(255,241,214,.1)}
.in-hint{display:flex;align-items:center;gap:12px;margin-top:24px;font-size:.9375rem;line-height:1.4;color:var(--ink-3)}
.in-hint i{position:relative;flex:none;width:12px;height:12px;border-radius:50%;background:var(--k-gold-clay);box-shadow:0 0 0 3px rgba(60,6,30,.55),0 0 12px 2px rgba(255,214,110,.7)}
.in-hint i::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(255,220,130,.8);opacity:0}
html.anim .in-hint i::after{animation:in-ping 3.2s ease-out infinite}
html.anim .in-hero [data-rise]{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform 1s var(--spring);transition-delay:calc(var(--i,0)*90ms + 80ms)}
html.anim .in-hero.in-shown [data-rise]{opacity:1;transform:none}

/* the stage: a pool of warm light, the framed picture, the light on the table; moved a little by the pointer (inside-fx.js) */
.in-stage{--bleed:min(56px,max(var(--gutter),(100vw - var(--max))/2) - 28px);grid-area:stage;position:relative;z-index:1;align-self:center;container-type:inline-size;margin-block:0; margin-inline:calc(-1*clamp(0px,2vw,36px)) calc(-1*var(--bleed));padding:clamp(18px,3vw,40px) 0 clamp(30px,4cqw,46px)}
.in-pool{position:absolute;inset:-16% -12% -6% -12%;z-index:-1;pointer-events:none}
.in-pool::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,rgba(255,206,112,.40),rgba(255,176,80,.15) 48%,rgba(255,176,80,0) 76%)}
html.anim .in-pool::before{animation:in-breathe 7s ease-in-out infinite alternate}
@keyframes in-breathe{from{opacity:.72;transform:scale(.95)}to{opacity:1;transform:scale(1.04)}}
.in-floor{position:absolute;inset-inline-start:-4%;inset-inline-end:-4%;bottom:-16%;height:30%;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(closest-side,rgba(255,180,86,.34),rgba(255,150,70,.12) 55%,rgba(255,150,70,0));filter:blur(6px)}
.in-frame{position:relative;z-index:1;margin:0;padding:clamp(13px,2.5cqw,24px);border-radius:clamp(32px,5.6cqw,58px);
  background:var(--k-grain-light),radial-gradient(120% 100% at 22% -8%,#b02a6c 0%,#821349 36%,#5a0830 78%,#4a0626 100%);
  box-shadow:inset 0 2px 1px rgba(255,255,255,.34),inset 0 -16px 26px rgba(20,0,10,.55),inset 0 0 0 1px rgba(255,255,255,.06),inset 10px 0 18px -12px rgba(255,190,220,.18),
    0 64px 90px -40px rgba(10,0,5,.9),0 20px 32px -16px rgba(10,0,5,.6),0 0 160px -20px rgba(255,190,90,.42);}
.in-rim{padding:clamp(3px,.55cqw,6px);border-radius:clamp(22px,3.6cqw,38px);background:var(--k-gold-clay);box-shadow:inset 0 1px 1px rgba(255,255,255,.75),inset 0 -2px 3px rgba(140,70,0,.45),0 3px 8px rgba(20,0,10,.5)}
.in-win{position:relative;container-type:inline-size}
.in-pic{position:relative;overflow:hidden;border-radius:clamp(19px,3.1cqw,33px);background:#0b0510}
.in-pic img{width:100%;height:auto}
.in-pic::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,0) 26%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.5),inset 0 12px 26px rgba(0,0,0,.5),inset 0 0 70px rgba(0,0,0,.3)}
.in-over{position:absolute;inset:0;pointer-events:none}

/* the workbench: clay objects around the frame, at different depths (the cog turns behind it) */
.in-prop{position:absolute;z-index:2;pointer-events:none}
.in-prop img{width:100%;height:auto;filter:drop-shadow(0 18px 16px rgba(12,0,6,.55)) drop-shadow(0 4px 4px rgba(12,0,6,.3))}
html.anim .in-prop img{animation:k-float 8s ease-in-out infinite}
.in-prop--cog{z-index:0;inset-inline-start:-6%;top:1%;width:17cqw}
html.anim .in-prop--cog img{animation:in-turn 60s linear infinite}
@keyframes in-turn{to{transform:rotate(360deg)}}
.in-prop--wrench{inset-inline-end:-2.5%;bottom:21%;width:13cqw}
.in-prop--wrench img{--r:-28deg;transform:rotate(-28deg);animation-duration:9s;animation-delay:-3s}
.in-prop--toolbox{inset-inline-start:-4%;bottom:3%;width:15.5cqw}
.in-prop--toolbox img{--r:-6deg;transform:rotate(-6deg);animation-duration:7.5s;animation-delay:-5s}

/* the three stars rising from the spout (the picture's spout is at 89% / 31%) — they leave the frame */
.in-rise{position:absolute;height:auto;opacity:0;filter:drop-shadow(0 .5cqw .7cqw rgba(60,10,0,.45)) drop-shadow(0 0 1.2cqw rgba(255,214,110,.5))}
html.anim .in-rise{animation:k-lamp-rise 6s ease-in-out infinite}
.in-rise--1{inset-inline-start:85.5%;top:22%;width:6.2cqw}
.in-rise--2{inset-inline-start:90%;top:15%;width:3.9cqw}
.in-rise--3{inset-inline-start:83%;top:12%;width:2.9cqw}
html.anim .in-rise--2{animation-delay:2s}
html.anim .in-rise--3{animation-delay:4s}

/* the motes: tiny gold stars drifting up out of the open lamp (inside-fx.js places them; CSS moves them, off the main thread) */
.in-motes{position:absolute;inset:0}
.in-follow :is(.in-pool,.in-floor,.in-frame,.in-motes,.in-prop){will-change:transform}   /* the layers parallax() moves */
.in-mote{position:absolute;inset-inline-start:var(--x);top:var(--y);width:var(--w);height:auto;opacity:0;filter:drop-shadow(0 0 .6cqw rgba(255,214,110,.9))}
html.anim .in-mote{animation:in-mote var(--dur) linear var(--delay) infinite}
@keyframes in-mote{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(0deg) scale(.4)}
  14%{opacity:var(--o)}
  40%{transform:translate3d(calc(var(--dx)*.35),calc(var(--rise)*.4),0) rotate(calc(var(--rot)*.4)) scale(1)}
  62%{opacity:var(--o);transform:translate3d(calc(var(--dx)*.7),calc(var(--rise)*.66),0) rotate(calc(var(--rot)*.7)) scale(.7)}
  100%{opacity:0;transform:translate3d(var(--dx),var(--rise),0) rotate(var(--rot)) scale(1)}}
.in-stage.in-off .in-mote,.in-stage.in-off .in-rise,.in-stage.in-off .in-pool::before{animation-play-state:paused}

/* the parts' lights in the picture: a gold bead each, a name on hover or focus */
.in-pins{position:absolute;inset:0}
.in-pin{position:absolute;width:44px;height:44px;margin-block:-22px 0; margin-inline:-22px 0;display:grid;place-items:center;border-radius:50%;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.in-pin::before{content:"";width:clamp(7px,1.15cqw,10px);height:clamp(7px,1.15cqw,10px);border-radius:50%;background:radial-gradient(circle at 40% 35%,#fffdf2,#ffe9a8 55%,#f6c24a);
  box-shadow:0 0 0 clamp(3px,.75cqw,6px) rgba(255,214,120,.2),0 0 0 clamp(4px,.9cqw,7.5px) rgba(255,232,170,.75),0 0 clamp(8px,2.6cqw,18px) clamp(1px,.55cqw,4px) rgba(255,200,90,.75);transition:transform .35s var(--spring),box-shadow .35s}
.in-pin::after{content:"";position:absolute;inset:clamp(10px,calc(22px - 1.7cqw),14px);border-radius:50%;border:1.5px solid rgba(255,226,150,.85);opacity:0}
html.anim .in-stage.in-ready .in-pin::after{animation:in-ping 3.6s ease-out infinite;animation-delay:var(--d,0s)}
@keyframes in-ping{0%{opacity:.9;transform:scale(.45)}70%,100%{opacity:0;transform:scale(1.6)}}
.in-pin b{position:absolute;inset-inline-start:calc(50% + 16px);top:50%;display:flex;align-items:center;gap:7px;padding-block:7px; padding-inline:10px 13px;border-radius:999px;white-space:nowrap;pointer-events:none;
  background:rgba(255,248,230,.96);box-shadow:inset 0 1px 0 #fff,0 12px 26px -10px rgba(20,0,10,.75);font:650 .8125rem/1 var(--display);color:var(--plum-700);
  opacity:0;transform:translate(0,-50%) scale(.86);transform-origin:left center;transition:opacity .25s,transform .35s var(--spring)}
.in-pin b em{font-style:normal;color:var(--plum-400);letter-spacing:.04em}
.in-pin--l b{inset-inline-start:auto;inset-inline-end:calc(50% + 16px);transform-origin:right center}
.in-pin:hover::before,.in-pin:focus-visible::before,.in-pin.in-on::before{transform:scale(1.35);box-shadow:0 0 0 clamp(4px,.75cqw,6px) rgba(255,214,120,.3),0 0 0 clamp(5px,.9cqw,7.5px) rgba(255,240,190,.95),0 0 26px 8px rgba(255,210,100,.9)}
.in-pin:hover b,.in-pin:focus-visible b,.in-pin.in-on b{opacity:1;transform:translate(0,-50%) scale(1)}
.in-pin:hover,.in-pin:focus-visible,.in-pin.in-on{z-index:5}
.in-pin:focus-visible{outline:2.5px solid #fff0b8;outline-offset:-9px}
html.anim .in-pin{opacity:0;transform:scale(.4);transition:opacity .5s var(--ease),transform .6s var(--spring);transition-delay:var(--d0,0s)}
html.anim .in-stage.in-ready .in-pin{opacity:1;transform:none}

/* the brass plate under the frame: what is inside right now, from the data files */
.in-plate{position:absolute;left:50%;bottom:0;z-index:3;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;width:max-content;max-width:calc(100% - 32px);min-height:44px;padding:9px 22px;border-radius:999px;
  background:var(--k-grain),var(--k-gold-clay);box-shadow:var(--k-gold-shadow),0 18px 30px -14px rgba(20,0,10,.75);color:var(--plum-700);font:600 .875rem/1.2 var(--text);transform:translate(-50%,52%)}
.in-plate:empty{visibility:hidden}
.in-plate span{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.in-plate b{font:800 1.0625rem/1 var(--display);letter-spacing:-.02em}
.in-plate img{width:11px;height:auto;align-self:center}

/* ── the parts ────────────────────────────────────────────────────────────────────────────────────────────────────── */
.in-parts:focus,.in-tools:focus,.in-flow:focus{outline:none}
.in-bento{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(40px,4vw,50px) clamp(16px,1.8vw,24px);padding-top:16px}
.in-part{--ink:#2a0a1c;--ink-2:#5b2a44;--ink-3:#7a4a62;--pk:var(--plum-500);--tile-sh:rgba(90,40,0,.45);grid-column:span 4;position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;
  padding:28px clamp(22px,2.2vw,30px) 24px;border-radius:var(--r-xl);background:var(--k-paper);box-shadow:var(--k-paper-shadow),0 36px 60px -42px rgba(90,40,0,.45);color:var(--ink);cursor:pointer;scroll-margin-top:118px;
  outline:4px solid rgba(250,201,63,0);outline-offset:16px;transition:transform .45s var(--spring)}
.in-part:hover{transform:translateY(-6px)}
.in-part[data-k="procedures"]{grid-column:span 7}.in-part[data-k="projects"]{grid-column:span 5}
.in-part[data-k="goals"],.in-part[data-k="proofs"]{grid-column:span 6}
.in-part--plum{--ink:var(--cream-100);--ink-2:#efd6ca;--ink-3:#dcbcc5;--pk:var(--gold-300);--tile-sh:rgba(20,0,10,.6);background:var(--k-grain-light),var(--k-plum-clay);box-shadow:var(--k-plum-shadow)}
.in-part--gold{--ink:var(--plum-700);--ink-2:#5e1636;--ink-3:#73304d;--pk:var(--plum-500);--tile-sh:rgba(110,50,0,.45);background:var(--k-grain),var(--k-gold-clay);box-shadow:var(--k-gold-shadow)}
.in-part :focus-visible{outline-color:var(--plum-400)}
.in-part--plum :focus-visible{outline-color:var(--gold-300)}
.in-part.in-lit{animation:in-lit 1.5s var(--ease) 2}
@keyframes in-lit{40%{outline-color:rgba(242,182,41,.95);outline-offset:6px}}
.in-part-prop{position:absolute;top:-30px;inset-inline-end:clamp(18px,2vw,30px);width:auto;height:clamp(84px,8vw,108px);transform:rotate(var(--r,7deg));filter:drop-shadow(0 16px 14px var(--tile-sh)) drop-shadow(0 3px 3px rgba(60,20,0,.25));transition:transform .55s var(--spring)}
.in-part:nth-child(even) .in-part-prop{--r:-8deg}
html.anim .in-part-prop{animation:k-float 7s ease-in-out infinite}
html.anim .in-part:nth-child(even) .in-part-prop{animation-duration:8.2s;animation-delay:-3s}
.in-part:hover .in-part-prop{animation-play-state:paused;transform:translateY(-8px) rotate(0) scale(1.06)}
.in-part-head{padding-inline-end:clamp(86px,8.4vw,112px);min-height:62px}
.in-part-k{display:flex;align-items:center;gap:8px;font:650 .75rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--pk)}
.in-part-k img{width:14px;height:auto}
.in-part h3{margin-top:11px;font-size:clamp(1.4rem,2vw,1.75rem);font-weight:780;letter-spacing:-.028em;color:inherit}
.in-part--paper h3{color:var(--plum-600)}
.in-part-line{max-width:34em;color:var(--ink-2);font-size:1rem;line-height:1.5}
.in-part-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:auto;padding-top:6px}
.in-stat{display:inline-flex;align-items:center;gap:9px;margin-inline-end:auto;font:600 .875rem/1.3 var(--text);color:var(--ink-2)}
.in-stat img{width:15px;height:auto;flex:none;filter:drop-shadow(0 2px 2px rgba(90,40,0,.3))}
.in-go{display:inline-flex;align-items:center;gap:7px;font:650 .9375rem/1 var(--display);color:var(--pk);text-decoration:none;white-space:nowrap}
.in-go::after{content:"→";transition:transform .3s var(--spring)}
.in-go:hover::after{transform:translateX(4px)}
.in-go:hover{text-decoration:underline;text-underline-offset:4px}
.in-part--plum .in-more{color:var(--plum-700);background:var(--k-grain),var(--k-gold-clay);box-shadow:var(--k-gold-shadow)}
.in-part--plum .in-more:hover{filter:brightness(1.06)}

/* the workbench pager (phones) */
.in-pager{display:none}
.in-round{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:50%;color:var(--plum-600);background:var(--k-paper);box-shadow:var(--k-paper-shadow);transition:transform .25s var(--spring)}
.in-round:hover{transform:translateY(-2px)}
.in-round:active{transform:translateY(1px) scale(.96)}
.in-round svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.in-dots{display:flex;align-items:center;gap:7px}
.in-dots i{width:8px;height:8px;border-radius:4px;background:rgba(100,8,46,.22);transition:width .35s var(--spring),background .3s}
.in-dots i.in-on{width:24px;background:var(--plum-600)}

/* ── the wall of tools ────────────────────────────────────────────────────────────────────────────────────────────── */
.in-tools-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.in-tools-head .k-sechead{margin-bottom:0}
.in-tools .k-h2{color:var(--cream-50)}
.in-ticks{display:grid;gap:16px;padding-bottom:6px}
.in-ticks li{position:relative;padding-inline-start:32px;color:var(--ink-2);font-size:1.0313rem;line-height:1.5}
.in-ticks li::before{content:"";position:absolute;inset-inline-start:0;top:.18em;width:19px;height:20px;background:url(/assets/brand/star-b.webp) center/contain no-repeat;filter:drop-shadow(0 3px 3px rgba(20,0,10,.45))}
.in-wall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(12px,1.4vw,18px)}
.in-wall>li{display:flex;min-width:0}
.in-niche{position:relative;isolation:isolate;flex:1;display:grid;justify-items:center;align-content:start;gap:6px;min-width:0;padding:26px 14px 22px;border-radius:30px;text-align:center;text-decoration:none;color:var(--ink);
  background:linear-gradient(180deg,rgba(16,0,8,.36),rgba(16,0,8,.12));box-shadow:inset 0 16px 24px -8px rgba(10,0,5,.62),inset 0 -1px 0 rgba(255,236,214,.16),inset 0 0 0 1px rgba(255,236,214,.05)}
.in-niche-light{position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(74% 58% at 50% 0%,rgba(255,214,140,.34),rgba(255,214,140,0) 74%);opacity:.5;transition:opacity .6s var(--ease)}
.in-niche-tile{width:clamp(64px,6.4vw,92px);height:auto;margin-bottom:14px;border-radius:24%;box-shadow:0 20px 22px -12px rgba(8,0,4,.8),0 5px 9px -2px rgba(8,0,4,.45);transition:transform .55s var(--spring),box-shadow .5s,filter .5s;filter:saturate(.92) brightness(.94)}
.in-niche-name{font:720 1.0313rem/1.15 var(--display);letter-spacing:-.012em;color:var(--cream-50)}
.in-niche-line{font:500 .8125rem/1.42 var(--text);color:var(--ink-3)}
.in-niche-go{position:absolute;top:14px;inset-inline-end:16px;font:700 1rem/1 var(--display);color:var(--gold-300);opacity:0;transform:translateX(-5px);transition:opacity .3s,transform .35s var(--spring)}
a.in-niche:hover .in-niche-light,.in-niche.in-on .in-niche-light{opacity:1}
a.in-niche:hover .in-niche-tile{transform:translateY(-9px) rotate(-4deg) scale(1.06);filter:none}
.in-niche.in-on .in-niche-tile{transform:translateY(-5px);filter:none;box-shadow:0 22px 24px -12px rgba(8,0,4,.8),0 0 0 3px rgba(250,201,63,.85),0 0 34px rgba(250,201,63,.55)}
a.in-niche:hover .in-niche-go,a.in-niche:focus-visible .in-niche-go{opacity:1;transform:none}
a.in-niche:hover .in-niche-name{color:var(--gold-200)}
a.in-niche:focus-visible{outline:3px solid var(--gold-300);outline-offset:3px;border-radius:30px}
.in-niche-use{position:absolute;z-index:2;top:16px;inset-inline-start:calc(50% + clamp(14px,1.6vw,24px));display:flex;align-items:center;gap:5px;padding-block:5px; padding-inline:7px 9px;border-radius:999px;background:var(--k-grain-light),var(--k-plum-clay);box-shadow:0 6px 12px -4px rgba(10,0,5,.7),inset 0 1px 0 rgba(255,255,255,.2);font:650 .625rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-200);opacity:0;transform:translateY(-4px);transition:opacity .4s,transform .45s var(--spring)}
.in-niche-use::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold-300);box-shadow:0 0 8px var(--gold-300)}
.in-niche.in-on .in-niche-use{opacity:1;transform:none}
.in-wall-foot{display:flex;justify-content:center;margin-top:clamp(36px,4vw,52px)}
.in-tools .k-btn--ghost{color:var(--cream-50)}

/* ── the lamp, whole again ────────────────────────────────────────────────────────────────────────────────────────── */
.in-end-in{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(28px,5vw,84px);align-items:center}
.in-end-art{position:relative;padding-block:clamp(70px,9vw,120px) clamp(14px,2vw,24px); padding-inline:0 clamp(20px,5vw,70px)}
.in-end-glow{position:absolute;inset:4% 0 0 -6%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,252,226,.95),rgba(255,252,226,0));filter:blur(4px)}
.in-end-floor{position:absolute;inset-inline-start:8%;inset-inline-end:22%;bottom:2%;height:10%;border-radius:50%;background:radial-gradient(closest-side,rgba(110,46,0,.4),rgba(110,46,0,0));filter:blur(8px)}
.in-end-float{position:relative}
html.anim .in-end-float{animation:k-float 7.5s ease-in-out infinite}
.in-end-lamp{max-width:540px}
.in-end-copy .k-h2{margin-top:18px;color:var(--plum-600)}
.in-end-copy .k-lead{margin-top:18px}
.in-end-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* ── a part, up close (the detail panel) ──────────────────────────────────────────────────────────────────────────── */
.in-dlg{--ink:#2a0a1c;--ink-2:#5b2a44;--ink-3:#7a4a62;width:min(880px,calc(100vw - 32px));max-width:none;max-height:min(90dvh,980px);padding:0;border:0;border-radius:40px;color:var(--ink);
  background:var(--k-paper);box-shadow:var(--k-paper-shadow),0 60px 120px -30px rgba(20,0,10,.8);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.in-dlg::backdrop{background:rgba(42,5,24,.64);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
html.anim .in-dlg[open]{animation:k-pop .5s var(--spring) both}
.in-dlg-in{position:relative;padding:clamp(24px,4vw,46px)}
.in-dlg-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(14px,2vw,22px);align-items:center}
.in-dlg-tile{width:clamp(64px,8vw,88px);height:auto;border-radius:24%;transform:rotate(-5deg);box-shadow:0 18px 22px -12px rgba(90,40,0,.6),0 4px 8px -3px rgba(90,40,0,.3)}
.in-dlg-head h2{margin-top:10px;font-size:clamp(1.75rem,3.4vw,2.6rem);color:var(--plum-600)}
.in-dlg-head .in-part-k{--pk:var(--plum-500)}
.in-dlg-x{align-self:start}
.in-dlg-line{margin-top:22px;max-width:40em;font-size:clamp(1.0625rem,1.6vw,1.22rem);line-height:1.5;color:var(--ink-2)}
.in-dlg-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 30px;margin-top:24px}
.in-dlg-lines li,.in-tick{position:relative;padding-inline-start:28px;color:var(--ink-2);font-size:.98rem;line-height:1.5}
.in-dlg-lines li::before,.in-tick::before{content:"";position:absolute;inset-inline-start:0;top:.2em;width:17px;height:18px;background:url(/assets/brand/star-b.webp) center/contain no-repeat;filter:drop-shadow(0 2px 2px rgba(130,70,0,.35))}
.in-dlg-ex{margin-top:28px;padding:clamp(18px,2.6vw,26px);border-radius:28px;background:#fffdf8;box-shadow:inset 0 1px 0 #fff,0 18px 34px -24px rgba(90,40,0,.55),0 2px 6px -3px rgba(90,40,0,.2)}
.in-dlg-ex>h3{margin-bottom:16px;font:650 .75rem/1.2 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--plum-500)}
.in-dlg-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}
.in-dlg-links{display:flex;flex-wrap:wrap;gap:10px}
.in-dlg-nav{display:flex;align-items:center;gap:12px;color:var(--ink-3);font:600 .875rem/1 var(--text)}

/* ── tablets ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
@media (max-width:1199px){
  .in-wall{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1099px){
  .in-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .in-part,.in-part[data-k]{grid-column:auto}
  .in-part[data-k="procedures"]{grid-column:1/-1}
}
@media (max-width:900px){
  .in-hero-in{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"head" "stage" "body"}
  .in-h1{font-size:clamp(2.6rem,7.6vw,3.9rem)}
  .in-stage{margin:clamp(18px,4vw,30px) 0 0;padding-top:8px}
  .in-prop--cog{inset-inline-start:-1.5%;top:-1%;width:15cqw}
  .in-prop--wrench{inset-inline-end:-1.5%}
  .in-tools-head{grid-template-columns:minmax(0,1fr)}
  .in-end-in{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}
  .in-end-art{width:min(100%,520px);padding-inline-end:clamp(40px,8vw,70px)}
  .in-end-cta{justify-content:center}
  .in-end-copy .k-eyebrow{justify-content:center}
  .in-end-copy .k-lead{margin-inline:auto}
}

/* ── phones: the parts become a workbench you swipe ───────────────────────────────────────────────────────────────── */
@media (max-width:699px){
  .in-hero{padding-top:104px}
  .in-h1{margin-top:18px}
  .in-hero-cta .k-btn{flex:1 1 auto}
  .in-plate{flex-wrap:nowrap;gap:7px;padding:8px 13px;font-size:.75rem;min-height:36px;max-width:calc(100% - 20px)}
  .in-plate b{font-size:.875rem}
  .in-plate img{width:9px}
  .in-prop--toolbox{display:none}
  .in-prop--wrench{width:12cqw;bottom:24%}
  .in-bento{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter)*-1);padding:34px var(--gutter) 22px;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain}
  .in-bento::-webkit-scrollbar{display:none}
  .in-part{flex:0 0 min(86%,420px);scroll-snap-align:start;padding:26px 20px 20px}
  .in-part:hover{transform:none}
  .in-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px}
  .in-wall{grid-template-columns:minmax(0,1fr);gap:10px}
  .in-niche{grid-template-columns:64px minmax(0,1fr);justify-items:start;align-items:center;column-gap:16px;row-gap:3px;padding-block:14px; padding-inline:16px 44px;border-radius:24px;text-align:start}
  .in-niche-tile{grid-row:1/3;width:64px;margin:0}
  .in-niche-name{align-self:end}
  .in-niche-line{align-self:start}
  .in-niche-go{top:50%;inset-inline-end:18px;opacity:.9;transform:translateY(-50%)}
  a.in-niche:hover .in-niche-go,a.in-niche:focus-visible .in-niche-go{transform:translateY(-50%)}
  .in-niche-use{display:none}
  .in-dlg{width:100vw;margin:auto 0 0;border-radius:30px 30px 0 0;max-height:92dvh}
  .in-dlg-lines{grid-template-columns:minmax(0,1fr)}
  .in-dlg-foot{flex-direction:column;align-items:stretch}
  .in-dlg-nav{justify-content:space-between}
}

/* reduced motion: the stars stand still (inside-fx.js never starts the pointer, the motes or the wall's turn) */
@media (prefers-reduced-motion:reduce){
  .in-rise{opacity:1}
  .in-mote{opacity:var(--o)}
}
