:root{--bg:#14122c;--ink:#ece6f2;--muted:#8d86a8;--poetic:"Fraunces", Georgia, serif;--system:"Recursive", ui-monospace, monospace;--gutter:clamp(16px, 5vw, 72px)}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--system);font-variation-settings:"MONO" 1, "CASL" 0;-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow-x:hidden}@media (pointer:coarse){body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.form input,.form textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}}.stage-canvas,.six-canvas,.seven-canvas,.eight-canvas{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0}.bar{z-index:5;padding:16px var(--gutter);align-items:center;gap:20px;font-size:12px;display:flex;position:fixed;top:0;right:0}.bar.bar-left{color:var(--ink);text-decoration:none;left:0;right:auto}.bar.bar-left:hover{text-decoration:underline}.bar{text-shadow:0 0 6px var(--bg), 0 0 2px var(--bg)}.bar a{color:inherit;text-decoration:none}.bar a:hover{text-decoration:underline}.lang{color:var(--muted);align-items:center;transition:padding .4s,font-size .4s,background .4s;display:inline-flex}.lang button{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.lang button:hover,.lang button.on{color:var(--ink)}.lang button.on{font-weight:600}.lang-dot{white-space:pre}.lang.ask{letter-spacing:.1em;color:color-mix(in srgb, var(--ink) 62%, transparent);background:color-mix(in srgb, var(--bg) 80%, transparent);border:1px solid color-mix(in srgb, var(--ink) 75%, transparent);border-radius:14px;padding:9px 17px;font-size:14px;box-shadow:0 6px 34px #00000080}.lang-tip{top:100%;right:var(--gutter);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-align:right;justify-items:end;gap:4px;margin:4px 0 0;font-size:10.5px;animation:1.4s .6s both lang-tip;display:grid;position:absolute}@keyframes lang-tip{0%{opacity:0;transform:translateY(-4px)}}.lang-veil{z-index:4;pointer-events:auto;background:color-mix(in srgb, var(--bg) 30%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:fixed;inset:0}html.asking,html.asking body{overflow:hidden}html.asking .bar-left{visibility:hidden}.hud{z-index:6;color:var(--muted);background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:4px;padding:4px 8px;font-size:11px;position:fixed;bottom:12px;left:12px}.four-canvas{z-index:0;pointer-events:none;width:128vw;height:min(100vh,74vw);position:fixed;top:calc(50vh - min(50vh,37vw));left:-28vw;overflow:hidden}.four-canvas canvas{display:block}.object-ring{opacity:0;pointer-events:none;will-change:transform, width, height;border:1px solid;border-radius:50%;width:0;height:0;transition:border-color .4s,opacity .3s;position:absolute;top:0;left:0}.object-pole{letter-spacing:.05em;white-space:nowrap;align-items:center;gap:6px;font-size:12px;transition:opacity .4s;display:flex;position:absolute;transform:translate(-50%,-50%)}.object-pole i{border-radius:50%;width:6px;height:6px}.object-pole.upright{writing-mode:vertical-rl}.object-pole.upright.left{transform:translate(-50%,-50%)rotate(180deg)}.object-hint{white-space:nowrap;letter-spacing:.05em;margin:0;font-size:12px;transition:color .4s;position:absolute;transform:translate(-50%,-50%)}.object-voice{text-align:center;width:min(80vw,420px);font-family:var(--poetic);margin:0;font-size:clamp(20px,2vw,28px);font-style:italic;font-weight:300;line-height:1.2;animation:3.4s forwards object-voice;position:absolute;transform:translate(-50%)}@keyframes object-voice{0%{opacity:0;filter:blur(2px);translate:0 6px}12%{opacity:1;filter:none;translate:0}78%{opacity:1}to{opacity:0}}main{z-index:1;pointer-events:none;position:relative}section{position:relative}.stage{pointer-events:none;height:100svh;position:fixed;inset:0;overflow:hidden}[data-show]{opacity:0;visibility:hidden;pointer-events:auto;will-change:opacity, translate;position:absolute}.txt{width:min(34vw,440px);margin-top:-3em;top:50%}.txt.side-L{left:var(--gutter)}.txt.side-R{right:var(--gutter)}.txt.side-C{text-align:center;width:min(66vw,980px);margin:0;top:50%;left:50%;transform:translate(-50%,-50%)}.txt.side-C .h2,.txt.side-C h2{font-size:clamp(34px,5vw,76px);line-height:1.05}.txt.side-M{width:min(640px, var(--lens-gap,50vw));text-align:center;margin:0;top:50%;left:50%;transform:translate(-50%,-50%)}.txt.side-M h2{font-size:clamp(24px,2.7vw,40px)}.txt.side-B{text-align:center;width:min(90vw,720px);margin-left:calc(-1*min(45vw,360px));top:auto;bottom:12vh;left:50%}.txt.card{background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:8px;margin-top:0;padding:16px 20px;top:18vh}.h2,h2{font-family:var(--poetic);font-optical-sizing:auto;letter-spacing:-.01em;margin:0;font-size:clamp(26px,3.2vw,46px);font-style:italic;font-weight:300;line-height:1.08}h3,.h3{font-family:var(--poetic);font-optical-sizing:auto;margin:0 0 6px;font-size:23px;font-weight:400;line-height:1.2}.t1{font-variation-settings:"MONO" 0, "CASL" 0;margin:10px 0 0;font-size:16px;line-height:1.55}.t2{color:var(--muted);font-variation-settings:"MONO" 0, "CASL" 0;margin:10px 0 0;font-size:14px;line-height:1.55}.t3{color:var(--muted);letter-spacing:.05em;margin:10px 0 0;font-size:11px}.txt.rows{grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.txt.rows>.phrase{grid-column:1}.hp{font-family:var(--poetic);font-optical-sizing:auto;letter-spacing:-.005em;color:var(--ink);margin:16px 0 0;font-size:clamp(21px,2.15vw,31px);font-style:normal;font-weight:300;line-height:1.2}h2+.hp,.phrase:first-child+.phrase .hp:first-child{margin-top:18px}[data-letters],[data-steps]{opacity:1;will-change:auto}.w{white-space:nowrap}.l{--lam:calc(var(--q,1) * 1.6 - var(--f) * .6);opacity:clamp(0, calc((var(--lam) - .74) / .22), 1);display:inline-block}.txt.card[data-letters],.txt.card[data-steps],.sec-title[data-letters],.place[data-letters]{background:color-mix(in srgb, var(--bg) calc(var(--q,1) * 82%), transparent)}.pcard[data-letters]{background:color-mix(in srgb, var(--bg) calc(var(--q,1) * 97%), transparent);border-color:color-mix(in srgb, var(--muted) calc(var(--q,1) * 45%), transparent)}.pcard[data-letters] .dot{opacity:var(--q,1)}.hint{color:var(--muted);margin:0;font-size:12px;bottom:6vh;left:50%;transform:translate(-50%)}.sec-title{text-align:center;width:min(90vw,720px);color:var(--muted);letter-spacing:.06em;background:color-mix(in srgb, var(--bg) 85%, transparent);border-radius:6px;margin:0 0 0 calc(-1*min(45vw,360px));padding:6px 10px;font-size:12px;top:9vh;left:50%}.lens-labels{pointer-events:none;inset:0}.lens-labels button{width:var(--hit,120px);height:var(--hit,120px);font:inherit;color:var(--lc);cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:opacity .35s;display:grid;position:absolute;transform:translate(-50%,-50%)}.lens-labels button:focus-visible{outline:1.5px solid var(--lc);outline-offset:4px}.lens-word{letter-spacing:.04em;background:color-mix(in srgb, var(--bg) 78%, transparent);border-radius:10px;padding:2px 8px;font-size:15px;font-weight:600;transition:background .35s,color .35s}.lens-labels.has-open button:not(.on){opacity:.4}.lens-labels button.on .lens-word{background:var(--lc);color:var(--bg)}.lens-detail{text-align:center;width:min(480px, var(--lens-gap,36vw));pointer-events:none;animation:.6s ease-out both lens-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lens-detail .t3:first-child{color:var(--lc);margin:0 0 6px}.lens-detail .h2{font-size:clamp(26px,3vw,44px)}.lens-veil{pointer-events:none;background:radial-gradient(circle at var(--ox) var(--oy), transparent calc(var(--or) * .95), var(--bg) calc(var(--or) * 1.3));opacity:0;animation:.4s ease-out forwards lens-veil;position:absolute;inset:0}@keyframes lens-veil{to{opacity:.62}}.lens-branches{pointer-events:none;opacity:.92;position:absolute;inset:0;overflow:visible}.lens-branches path{fill:none;stroke:var(--lc);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:linear forwards lens-grow}.lens-branches path.leaf{fill:var(--lc);stroke:none;stroke-dasharray:none;stroke-dashoffset:0;opacity:0;animation:.4s ease-out forwards lens-leaf}@keyframes lens-leaf{to{opacity:.7}}.lens-leaf{white-space:nowrap;pointer-events:auto;color:color-mix(in srgb, var(--lc) 80%, var(--ink));background:var(--bg);box-shadow:0 0 0 1px color-mix(in srgb, var(--lc) 50%, transparent), 0 0 14px 6px var(--bg);opacity:0;border-radius:12px;padding:3px 11px;font-size:14px;font-weight:600;animation:.32s ease-out forwards lens-pop;position:absolute;transform:translate(-50%,-50%)}@keyframes lens-grow{to{stroke-dashoffset:0}}@keyframes lens-pop{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@keyframes lens-in{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0}}#s3-ontology .txt{transition:opacity .35s}html[data-lens-open] #s3-ontology .txt,html[data-lens-open] #s3-ontology .hint{opacity:0!important}.ph{border:1.5px dashed var(--muted);width:min(38vw,480px);min-height:40vh;color:var(--muted);border-radius:10px;padding:20px 22px;top:50%;transform:translateY(-50%)}.ph.side-L{left:var(--gutter)}.ph.side-R{right:var(--gutter)}.ph.side-F{left:calc(var(--gutter) + min(34vw, 440px) + 32px);right:calc(var(--gutter) + 24px);width:auto;min-height:0;top:14vh;bottom:14vh;transform:none}.ph.side-F2{right:calc(var(--gutter) + min(34vw, 440px) + 32px);left:calc(var(--gutter) + 24px);width:auto;min-height:0;top:14vh;bottom:14vh;transform:none}.ph.small{width:min(30vw,360px);min-height:26vh}.mini{pointer-events:none;width:min(32vw,400px);height:38vh;top:50%;transform:translateY(-50%)}.mini.side-L{left:var(--gutter)}.mini.side-R{right:var(--gutter)}.txt.card.reading{max-height:78vh;top:12vh;overflow:hidden}.reading-planets{color:var(--muted);margin:10px 0 12px;padding:0;font-size:12px;list-style:none}.reading-planets li{margin:2px 0}.reading-planets b{color:var(--ink);font-weight:400}.eight-label{color:var(--ink);white-space:nowrap;letter-spacing:.02em;pointer-events:none;text-shadow:0 0 6px #0009;font-size:11px}.mini-caption{text-align:center;color:var(--muted);margin:0;font-size:11px;position:absolute;bottom:-1.6em;left:0;right:0}.ph-label{letter-spacing:.12em;text-transform:uppercase;font-size:10px}.ph-title{color:var(--ink);margin:10px 0 4px;font-size:15px}.ph-status{margin:0;font-size:12px}.ph-note{color:var(--muted);margin:8px 0 0;font-size:11px}.ph-note[data-show]{text-align:center;width:80vw;bottom:5vh;left:50%;transform:translate(-50%)}.beats{margin:18px 0 0;padding-left:18px;font-size:13px}.beats li{opacity:.35;margin-bottom:4px;transition:opacity .4s}.beats li.on{opacity:1;color:var(--ink)}.place{width:fit-content;font-family:var(--poetic);background:color-mix(in srgb, var(--bg) 70%, transparent);border-radius:8px;margin:0 auto;padding:4px 14px;font-size:clamp(20px,2.4vw,30px);font-style:italic;font-weight:300;bottom:14vh;left:0;right:0}.pcard{top:50%;left:calc(var(--gutter) + 2vw);background:color-mix(in srgb, var(--bg) 90%, transparent);border:1px solid color-mix(in srgb, var(--muted) 45%, transparent);border-radius:10px;width:min(30vw,380px);padding:20px 22px;transform:translateY(-50%)}.pcard h3{margin:4px 0 0;font-size:clamp(26px,2.6vw,34px);font-style:italic;font-weight:300}.pcard-kind{letter-spacing:.06em;margin:0}.pcard-lenses{gap:6px;margin:16px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.pcard-lenses .dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.pcard-inline{color:var(--muted);margin-left:8px;display:none}.pcard-origin{width:0;height:0;position:absolute;top:50%;left:100%}.pcard-branches{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.pcard-branches path{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.pcard-branches path.leaf{stroke:none;stroke-dasharray:none;stroke-dashoffset:0;opacity:0}.term{white-space:nowrap;transform:translate(calc(var(--dx,0) - 50%), calc(var(--dy,0) - 50%));opacity:0;color:color-mix(in srgb, var(--lc) 78%, var(--ink));background:var(--bg);box-shadow:0 0 0 1px color-mix(in srgb, var(--lc) 45%, transparent), 0 0 16px 8px var(--bg);border-radius:12px;padding:3px 11px;font-size:14px;font-weight:600;position:absolute;top:0;left:0}.pcard-veil{background:var(--bg);opacity:0;pointer-events:none;position:absolute;inset:0}.phase{padding:0 var(--gutter);pointer-events:none;grid-template-columns:1fr 1fr;align-items:start;column-gap:120px;display:grid;top:50%;left:0;right:0;transform:translateY(-50%)}.phase-name{text-align:right;justify-self:end;margin-top:-.2em}.phase-name .t3{margin:0 0 4px}.phase-name .h2{font-size:clamp(40px,5.4vw,80px);line-height:1}.phase-rows{gap:16px;max-width:400px;margin:0;display:grid}.phase-rows dt{margin:0}.phase-rows dd{margin:4px 0 0}.phase-rows dd.hp{font-size:clamp(20px,1.9vw,27px)}.form{top:50%;right:var(--gutter);gap:14px;width:min(40vw,460px);display:grid;transform:translateY(-50%)}.form label{gap:6px;display:grid}.form .t3{margin:0}.form textarea,.form input{font:inherit;color:var(--ink);border:1px solid var(--muted);background:0 0;border-radius:6px;padding:10px 12px}.form button{font:inherit;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;border-radius:6px;justify-self:start;padding:8px 18px}.form button:disabled{cursor:progress;opacity:.6}.form-status{min-height:1.4em;color:var(--muted);margin:0;font-size:12px}.form-status.sent{color:var(--ink)}.form-status.failed,.form-status.invalid,.form-status.empty{color:#c0533a}.legal{color:var(--muted);margin:18px 0 0;font-size:11px}.to-portfolio{color:var(--ink);font-family:var(--poetic);justify-self:start;margin-top:10px;font-size:20px;font-style:italic;font-weight:300;text-decoration:none}.to-portfolio:hover{text-underline-offset:4px;text-decoration:underline}@media (aspect-ratio<=4/5){:root{--edge:50px}.txt,.txt.side-L,.txt.side-R{left:var(--edge);right:var(--edge);text-align:left;width:auto;margin:0;top:auto;bottom:9vh}.txt.card{top:auto}.four-canvas{width:100vw;height:min(60vh,132vw);top:calc(45vh - min(30vh,66vw));left:0}.object-hint{white-space:normal;text-align:center;width:86vw;font-size:14px}.object-pole{font-size:14px}.object-voice{font-size:26px}.lens-detail{width:50vw}.txt.side-M{width:min(44vw, var(--lens-gap,44vw));text-align:center;bottom:auto;left:50%;right:auto}.txt.side-M h2{font-size:28px}.txt.side-M .hp{font-size:26px}.mini,.mini.side-L,.mini.side-R{left:var(--edge);right:var(--edge);width:auto;height:30vh;top:8vh;transform:none}#s9-services .txt{text-align:center;top:20vh;bottom:auto}#s9-services .mini{height:36vh;top:32vh}#s9-services .mini-caption{bottom:-3.2em}.ph,.ph.side-L,.ph.side-R,.ph.side-F,.ph.side-F2,.ph.small{left:var(--edge);right:var(--edge);width:auto;min-height:34vh;top:10vh;bottom:auto;transform:none}.phase{padding:0 var(--edge);grid-template-columns:1fr;row-gap:14px;top:50%;bottom:auto;transform:translateY(-50%)}.phase-name{text-align:left;justify-self:start}.phase-name .h2{font-size:54px}.phase-rows dd.hp{font-size:24px}.pcard{left:var(--edge);right:var(--edge);width:auto;padding:16px 18px;top:8vh;transform:none}.pcard .t1{font-size:16px}.pcard h3{font-size:30px}.pcard-lenses{font-size:15px}.pcard-origin{top:100%;left:50%}.term{padding:2px 9px;font-size:14px}#s12-start .txt{top:11vh;bottom:auto}.form{left:var(--edge);right:var(--edge);width:auto;top:26vh;bottom:auto;transform:none}.form textarea,.form input{font-size:16px}.form-status{font-size:14px}.txt.side-B{left:var(--edge);right:var(--edge);width:auto;margin:0}.txt.side-C{width:calc(100vw - 2 * var(--edge));text-align:center;bottom:auto;left:50%;right:auto}.txt.side-C .h2,.txt.side-C h2{font-size:36px;line-height:1.1}.h2,h2{font-size:32px}.hp{font-size:25px}.t1{font-size:17px}.t2{font-size:15px}.t3,.mini-caption,.ph-note,.legal{font-size:13px}.hint,.sec-title,.reading-planets,.ph-status{font-size:14px}.ph-title{font-size:17px}.eight-label{font-size:13px}.lens-word{font-size:17px}.lens-leaf{font-size:15px}.place{font-size:26px}.txt.reading .t1{font-size:min(17px,2.05svh);line-height:1.45}.txt.reading .h3{font-size:min(26px,3.2svh)}.txt.reading .t3{font-size:min(13px,1.6svh)}.txt.card.reading{max-height:none;top:auto;bottom:6vh;overflow:visible}}@media (prefers-reduced-motion:reduce){[data-show]{transition:none}.lens-detail,.lens-leaf,.lens-branches path{opacity:1;stroke-dashoffset:0;animation:none}.object-voice{animation-duration:10ms;animation-delay:3s}.lens-veil{opacity:.62;animation:none}.beats li{transition:none}}
