/* Study 04: the structure stays legible in either light. */
.ribhu-v3 .theme-toggle,.ribhu-v4-guide .theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex:none;min-width:84px;padding:9px 12px;border:1px solid currentColor;background:transparent;color:var(--gold);font:10px var(--mono);letter-spacing:.08em;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.ribhu-v4 .theme-toggle:hover,.ribhu-v4-guide .theme-toggle:hover{background:#d3ad661c}
.theme-toggle .theme-sun,.theme-toggle .theme-moon{transform-origin:12px 12px;transition:opacity .55s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.theme-toggle .theme-moon{opacity:0;transform:rotate(-75deg) scale(.35)}
html[data-theme="light"] .theme-toggle .theme-sun{opacity:0;transform:rotate(110deg) scale(.4)}
html[data-theme="light"] .theme-toggle .theme-moon{opacity:1;transform:rotate(0) scale(1)}
.theme-toggle:focus-visible,.principle-card a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

.ribhu-v4 .principles-v4{padding-block:125px 138px}
.ribhu-v4 .principles-v4-head{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start;border-top:1px solid var(--line);padding-top:24px}
.ribhu-v4 .principles-v4-head .eyebrow{margin-top:8px;color:var(--gold)}
.ribhu-v4 .principles-v4-intro{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:44px}
.ribhu-v4 .principles-v4 h2{margin:0;font:700 clamp(54px,5vw,87px)/.97 var(--sans);letter-spacing:-.075em}
.ribhu-v4 .principles-v4 h2 em{font:400 .89em/1.05 var(--serif);letter-spacing:-.055em;color:var(--gold)}
.ribhu-v4 .principles-v4-intro>p{max-width:320px;margin:0 0 6px;color:var(--muted);font:13px/1.8 var(--sans)}
.ribhu-v4 .principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:61px;background:var(--line);border:1px solid var(--line)}
.ribhu-v4 .principle-card{display:flex;flex-direction:column;min-width:0;min-height:545px;padding:22px 25px 28px;background:#17242a;transition:background .35s}
.ribhu-v4 .principle-card:hover{background:#20343a}
.ribhu-v4 .principle-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--gold);font:10px var(--mono);letter-spacing:.11em}
.ribhu-v4 .principle-card-top span:last-child{font:25px var(--serif)}
.ribhu-v4 .principle-drawing{position:relative;display:grid;place-items:center;min-height:228px;margin:24px -5px 26px;border-top:1px solid #4b6066;border-bottom:1px solid #4b6066;background:linear-gradient(#d3ad660a 1px,transparent 1px),linear-gradient(90deg,#d3ad660a 1px,transparent 1px);background-size:22px 22px;color:#91adae;overflow:hidden}
.ribhu-v4 .principle-drawing:before,.ribhu-v4 .principle-drawing:after{position:absolute;content:"";width:7px;height:7px;border:1px solid var(--gold);opacity:.7}
.ribhu-v4 .principle-drawing:before{top:10px;left:10px;border-right:0;border-bottom:0}
.ribhu-v4 .principle-drawing:after{bottom:10px;right:10px;border-top:0;border-left:0}
.ribhu-v4 .principle-drawing svg{display:block;width:min(100%,400px);height:auto;stroke:currentColor;stroke-width:1.35;vector-effect:non-scaling-stroke;transition:transform .5s ease,color .5s ease}
.ribhu-v4 .principle-card:hover .principle-drawing svg{transform:scale(1.055);color:#c6d3ca}
.ribhu-v4 .principle-drawing .fine{opacity:.42;stroke-width:1}
.ribhu-v4 .principle-drawing .accent{stroke:var(--gold);stroke-width:2.5}
.ribhu-v4 .principle-drawing .accent-fill{fill:var(--gold);stroke:var(--gold)}
.ribhu-v4 .principle-card-body{display:flex;flex:1;flex-direction:column}
.ribhu-v4 .principle-card h3{font:400 clamp(26px,2.15vw,36px)/1.12 var(--serif);letter-spacing:-.04em;margin:0 0 18px;color:var(--ink)}
.ribhu-v4 .principle-card p{max-width:370px;margin:0;color:var(--muted);font:12px/1.8 var(--sans)}
.ribhu-v4 .principle-card a{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:auto;padding-top:27px;color:var(--gold);font:10px var(--mono);text-decoration:none}
.ribhu-v4 .principle-card a span{font-size:17px;transition:transform .2s}
.ribhu-v4 .principle-card a:hover span{transform:translate(3px,-3px)}

html[data-theme="light"]{--paper:#f2eee5;--paper-light:#f9f6ef;--ink:#24343b;--muted:#5a6768;--gold:#9c682c;--gold-dark:#855624;--line:#c7c1b5;color-scheme:light}
html[data-theme="light"] body.ribhu-v3{background:#f2eee5;color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .site-header{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .wordmark small{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .version-nav span{color:#697573}
html[data-theme="light"] .ribhu-v3 .version-nav a{border-color:#a9ada7}
html[data-theme="light"] .ribhu-v3 .version-nav a[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .hero .eyebrow,html[data-theme="light"] .ribhu-v3 h1 em{color:var(--gold)}
html[data-theme="light"] .ribhu-v3 .hero-lead,html[data-theme="light"] .ribhu-v3 .hero-footnote{color:var(--muted)}
html[data-theme="light"] .ribhu-v3 .quiet-link{color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .hero-art{background:#e8e3d7;border-color:#aaa395;color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .evidence-card{background:linear-gradient(155deg,#ebe8de,#dcded5);border-color:#b6b9ac}
html[data-theme="light"] .ribhu-v3 .evidence-top,html[data-theme="light"] .ribhu-v3 .evidence-end{color:var(--gold);border-color:#b6b9ac}
html[data-theme="light"] .ribhu-v3 .evidence-request small,html[data-theme="light"] .ribhu-v3 .evidence-disclaimer{color:#697776}
html[data-theme="light"] .ribhu-v3 .evidence-card ol,html[data-theme="light"] .ribhu-v3 .evidence-card li{border-color:#b6b9ac}
html[data-theme="light"] .ribhu-v3 .evidence-card li span{color:var(--gold)}
html[data-theme="light"] .ribhu-v3 .evidence-card li b,html[data-theme="light"] .ribhu-v3 .evidence-end strong{color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .art-heading,html[data-theme="light"] .ribhu-v3 .chapter-tabs,html[data-theme="light"] .ribhu-v3 .chapter-panel,html[data-theme="light"] .ribhu-v3 .art-disclaimer{border-color:#b6b9ac;color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .motion-button{color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .atelier-scene{background:radial-gradient(circle at 50% 50%,#d6d4c9,#e6e3d9 75%)}
html[data-theme="light"] .ribhu-v3 .atelier-scene canvas{filter:saturate(.96) brightness(.85)}
html[data-theme="light"] .ribhu-v3 .chapter-tabs button{color:#526366}
html[data-theme="light"] .ribhu-v3 .chapter-tabs button:hover{background:#f5f0e59c}
html[data-theme="light"] .ribhu-v3 .chapter-tabs button[aria-selected="true"]{background:#bb9a65;color:#19272d;border-color:#9c682c}
html[data-theme="light"] .ribhu-v3 .chapter-panel p:not(.chapter-title){color:#536366}
html[data-theme="light"] .ribhu-v3 .proof-button{color:var(--ink);border-color:#8e9b97}
html[data-theme="light"] .ribhu-v3 .meaning-strip{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .meaning-strip p>span,html[data-theme="light"] .ribhu-v3 .meaning-strip>a{color:#5d6d6c}
html[data-theme="light"] .ribhu-v3 .meaning-strip>a{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .bench-section{background:#24343b;color:#f2eee5}
html[data-theme="light"] .ribhu-v3 .bench-section .eyebrow,html[data-theme="light"] .ribhu-v3 .bench-section h2,html[data-theme="light"] .ribhu-v3 .bench-section h3{color:#f2eee5}
html[data-theme="light"] .ribhu-v3 .bench-section p{color:#c9d3cc}
html[data-theme="light"] .ribhu-v4 .principle-card{background:#eae7dc}
html[data-theme="light"] .ribhu-v4 .principle-card:hover{background:#f5f1e8}
html[data-theme="light"] .ribhu-v4 .principle-drawing{border-color:#b7b8ac;color:#536e71;background-color:#e3e3d9;background-image:linear-gradient(#56717312 1px,transparent 1px),linear-gradient(90deg,#56717312 1px,transparent 1px)}
html[data-theme="light"] .ribhu-v4 .principle-card:hover .principle-drawing svg{color:#294e54}
html[data-theme="light"] .ribhu-v3 .principles{background:#f2eee5}
html[data-theme="light"] .ribhu-v3 .section-heading>p:last-child,html[data-theme="light"] .ribhu-v3 .principle-rows p{color:var(--muted)}
html[data-theme="light"] .ribhu-v3 .principle-rows,html[data-theme="light"] .ribhu-v3 .principle-rows article{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .principle-rows h3{color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .boundary-section{background:#e9e6dc;border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .boundary-copy>p:not(.eyebrow),html[data-theme="light"] .ribhu-v3 .closing>div>p{color:var(--muted)}
html[data-theme="light"] .ribhu-v3 .site-footer,html[data-theme="light"] .ribhu-v3 .proof-rail,html[data-theme="light"] .ribhu-v3 .proof-rail span{border-color:var(--line)}
html[data-theme="light"] .ribhu-v3 .proof-rail span{color:var(--ink)}
html[data-theme="light"] .ribhu-v3 .site-footer>p{color:var(--muted)}

.ribhu-v4-guide .guide-header .theme-toggle{margin-left:0;min-width:72px;color:var(--guide-gold)}
html[data-theme="dark"] body.ribhu-v4-guide{--guide-paper:#111a1f;--guide-ink:#ede8dc;--guide-muted:#a7b6b2;--guide-gold:#d3ad66;--guide-line:#465358;--guide-soft:#1d2c32;background:var(--guide-paper);color:var(--guide-ink);color-scheme:dark}
html[data-theme="dark"] .ribhu-v4-guide .guide-intro,html[data-theme="dark"] .ribhu-v4-guide .guide-article p,html[data-theme="dark"] .ribhu-v4-guide .guide-article li,html[data-theme="dark"] .ribhu-v4-guide dd{color:#b9c8c3}
html[data-theme="dark"] .ribhu-v4-guide .guide-article code{background:#26363b;color:#f1e9dc}
html[data-theme="dark"] .ribhu-v4-guide .guide-example,html[data-theme="dark"] .ribhu-v4-guide .guide-note,html[data-theme="dark"] .ribhu-v4-guide .guide-note-caution{background:#1c2b31;border-color:#53646a}
html[data-theme="dark"] .ribhu-v4-guide .guide-example>.guide-label,html[data-theme="dark"] .ribhu-v4-guide .guide-command,html[data-theme="dark"] .ribhu-v4-guide .guide-steps li{border-color:#53646a}
html[data-theme="dark"] .ribhu-v4-guide .guide-search{border-color:#647276;background:#17252b;color:var(--guide-ink)}
html[data-theme="dark"] .ribhu-v4-guide .guide-search input{border-color:#647276;background:#26363b;color:var(--guide-ink)}
html[data-theme="dark"] .ribhu-v4-guide .guide-search-results a:hover,html[data-theme="dark"] .ribhu-v4-guide .guide-search-results a:focus{background:#26363b}
html[data-theme="dark"] .ribhu-v4-guide .guide-search-head button,html[data-theme="dark"] .ribhu-v4-guide kbd{border-color:#647276}
html[data-theme="dark"] .ribhu-v4-guide .guide-nav li a>span,html[data-theme="dark"] .ribhu-v4-guide .guide-outline>p,html[data-theme="dark"] .ribhu-v4-guide .guide-eyebrow span{color:#8fa29e}

@media(max-width:1200px){.ribhu-v4 .principles-v4-head{grid-template-columns:1fr}.ribhu-v4 .principles-v4-intro{grid-template-columns:1fr 1fr}.ribhu-v4 .principle-card{padding-inline:19px}}
@media(max-width:850px){.ribhu-v4 .principles-v4{padding-block:85px}.ribhu-v4 .principle-grid{grid-template-columns:1fr;gap:1px}.ribhu-v4 .principle-card{display:grid;grid-template-columns:1fr 1fr;column-gap:25px;min-height:0}.ribhu-v4 .principle-card-top{grid-column:1/-1}.ribhu-v4 .principle-drawing{min-height:210px;margin-bottom:0}.ribhu-v4 .principle-card-body{padding:26px 0}.ribhu-v4 .principle-card a{margin-top:20px}.ribhu-v4-guide .guide-header .theme-toggle{margin-left:auto}.ribhu-v4-guide .guide-search-open{margin-left:0}}
@media(max-width:650px){.ribhu-v4 .site-header{gap:10px}.ribhu-v4 .site-header nav{gap:10px}.ribhu-v4 .site-header .theme-toggle{min-width:34px;padding:7px}.ribhu-v4 .site-header .theme-toggle span{display:none}.ribhu-v4 .version-nav{gap:3px}.ribhu-v4 .version-nav span{display:none}.ribhu-v4 .version-nav a{min-width:23px;height:23px;font-size:9px}.ribhu-v4 .principles-v4-intro{display:block}.ribhu-v4 .principles-v4-intro>p{margin-top:22px}.ribhu-v4 .principle-grid{margin-top:40px}.ribhu-v4 .principle-card{display:block;min-height:0;padding:17px 20px 27px}.ribhu-v4 .principle-drawing{margin:18px -5px 24px;min-height:175px}.ribhu-v4 .principle-card-body{padding:0}.ribhu-v4 .principle-card h3{font-size:30px}.ribhu-v4 .principle-card a{margin-top:21px}.ribhu-v4-guide .guide-header .theme-toggle{min-width:34px;padding:6px}.ribhu-v4-guide .guide-header .theme-toggle span{display:none}}
@media(prefers-reduced-motion:reduce){.ribhu-v4 .principle-card,.ribhu-v4 .principle-drawing svg,.ribhu-v4 .principle-card a span{transition:none}}

/* The theme switch sits in the last header corner in both studies. */
.ribhu-v3 .site-header .theme-toggle,.ribhu-v4-guide .guide-header .theme-toggle{width:41px;height:41px;min-width:41px;margin-left:4px;padding:0;border-radius:50%;color:var(--gold)}
.ribhu-v4-guide .guide-header .theme-toggle{color:var(--guide-gold)}
.ribhu-v3 .site-header .theme-toggle svg,.ribhu-v4-guide .guide-header .theme-toggle svg{width:20px;height:20px}
.ribhu-v3 .site-header .theme-toggle span,.ribhu-v4-guide .guide-header .theme-toggle span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ribhu-v3 .site-header .version-nav{margin-left:auto}
.ribhu-v3 .site-header .theme-toggle:hover,.ribhu-v4-guide .guide-header .theme-toggle:hover{background:#d3ad6622}

/* A designed last page, rather than a small utility strip. */
.footer-v4{position:relative;overflow:hidden;background:#0a1418;color:#eee9df}
.footer-v4:before{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(90deg,#d3ad6609 1px,transparent 1px);background-size:12.5% 100%}
.footer-v4-inner{position:relative;z-index:1}
.footer-v4-top,.footer-v4-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;font:9px var(--mono);letter-spacing:.1em}
.footer-v4-top{padding:23px 0;border-bottom:1px solid #4e6063;color:#d3ad66}
.footer-v4-top span:last-child{color:#a0afab}
.footer-v4-main{display:grid;grid-template-columns:1.13fr .87fr;gap:8vw;padding:95px 0 90px}
.footer-v4-message .eyebrow{margin:0 0 32px;color:#d3ad66}
.footer-v4-message h2{margin:0;color:#eee9df;font:700 clamp(75px,7.5vw,132px)/.91 var(--sans);letter-spacing:-.085em}
.footer-v4-message h2 em{font:400 .95em/1 var(--serif);letter-spacing:-.065em;color:#d3ad66}
.footer-v4-message>p:not(.eyebrow){max-width:520px;margin:35px 0 30px;color:#b7c5c0;font:15px/1.8 var(--sans)}
.footer-v4-cta{display:flex;justify-content:space-between;align-items:center;gap:25px;width:min(100%,390px);padding:18px 19px;background:#d3ad66;color:#142126;font:12px var(--sans);transition:background .2s,transform .2s}
.footer-v4-cta:hover{background:#e8c687;transform:translateY(-2px)}
.footer-v4-cta span{font-size:20px}
.footer-v4-links{display:grid;grid-template-columns:1fr 1fr;align-self:start;gap:32px;padding-top:8px}
.footer-v4-links>div{border-top:1px solid #6d7e7c}
.footer-v4-links h3{margin:20px 0 25px;color:#d3ad66;font:9px var(--mono);letter-spacing:.12em}
.footer-v4-links a{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid #3c4f51;color:#e0e7df;font:13px var(--sans);transition:color .2s,padding-left .2s}
.footer-v4-links a:hover{color:#d3ad66;padding-left:5px}
.footer-v4-links a span{color:#b2c0ba;font:10px var(--mono)}
.footer-v4-wordmark{display:flex;align-items:center;white-space:nowrap;overflow:hidden;margin:0 -1.7%;border-top:1px solid #4e6063;color:#e7e4d9;font:750 clamp(180px,24vw,575px)/.8 var(--sans);letter-spacing:-.12em}
.footer-v4-glyph{flex:none;margin-right:2%;color:#d3ad66;font:400 .65em/1 var(--serif);letter-spacing:0}
.footer-v4-bottom{padding:29px 0 35px;border-top:1px solid #4e6063;color:#9db0ab}
.footer-v4-bottom a{color:#d3ad66}
.footer-v4-bottom a:hover{color:#f2d28e}
html[data-theme="light"] .footer-v4{background:#20343a}
html[data-theme="light"] .footer-v4 .footer-v4-wordmark{color:#f1ede3}
@media(max-width:1100px){.ribhu-v4 .boundary-v4{grid-template-columns:1fr;gap:45px;padding:80px 6%}.ribhu-v4 .architecture-model{max-width:none}.footer-v4-main{gap:5vw}.footer-v4-message h2{font-size:clamp(67px,7vw,100px)}}
@media(max-width:800px){.footer-v4-main{grid-template-columns:1fr;gap:70px}.footer-v4-message h2{font-size:clamp(72px,11vw,110px)}.footer-v4-links{max-width:700px}.footer-v4-wordmark{font-size:clamp(145px,24vw,260px)}}
@media(max-width:650px){.ribhu-v3 .site-header .theme-toggle,.ribhu-v4-guide .guide-header .theme-toggle{width:34px;height:34px;min-width:34px;margin-left:0}.ribhu-v4 .boundary-v4{padding:45px 20px 55px;gap:35px}.ribhu-v4 .boundary-v4 .boundary-copy h2{font-size:clamp(46px,12vw,64px)}.ribhu-v4 .boundary-v4 .boundary-copy>p:not(.eyebrow){font-size:13px}.ribhu-v4 .architecture-model .architecture-layer-head{padding:13px 14px;font-size:7px}.ribhu-v4 .architecture-model .architecture-layer-main{grid-template-columns:minmax(0,1fr) 95px;min-height:150px;padding:16px 13px}.ribhu-v4 .architecture-model .architecture-layer-main h3{font-size:37px}.ribhu-v4 .architecture-model .architecture-layer-main h3 span{font-size:22px}.ribhu-v4 .architecture-model .architecture-layer-main p{font-size:10px}.ribhu-v4 .architecture-model .architecture-role{font-size:7px}.ribhu-v4 .architecture-model .architecture-capabilities span{font-size:6px;min-height:43px;padding:5px}.footer-v4-top,.footer-v4-bottom{font-size:7px}.footer-v4-top span:last-child{max-width:150px;text-align:right}.footer-v4-main{padding:65px 0 60px;gap:55px}.footer-v4-message h2{font-size:clamp(57px,13vw,75px)}.footer-v4-message>p:not(.eyebrow){font-size:13px}.footer-v4-links{gap:18px}.footer-v4-links a{font-size:11px}.footer-v4-links h3{font-size:7px}.footer-v4-wordmark{font-size:clamp(86px,23vw,145px)}.footer-v4-bottom{flex-wrap:wrap;line-height:1.5}.footer-v4-bottom span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){.footer-v4-cta,.footer-v4-links a,.ribhu-v4 .architecture-model .boundary-layer,.ribhu-v4 .architecture-model .boundary-bridge{transition:none}}

/* A small celestial instrument for the shared theme control. */
.ribhu-v3 .site-header .theme-toggle,.ribhu-v4-guide .guide-header .theme-toggle{position:relative;isolation:isolate;overflow:visible;transition:background .3s,border-color .3s,box-shadow .3s,transform .3s}
.ribhu-v3 .site-header .theme-toggle::before,.ribhu-v4-guide .guide-header .theme-toggle::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 48%,currentColor 58%,transparent 68% 100%);opacity:.62;animation:theme-orbit 9s linear infinite;pointer-events:none}
.ribhu-v3 .site-header .theme-toggle::after,.ribhu-v4-guide .guide-header .theme-toggle::after{content:"";position:absolute;z-index:-1;inset:-2px;border-radius:50%;background:radial-gradient(circle,#d3ad6640,transparent 70%);opacity:.48;transform:scale(1);transition:transform .5s,opacity .5s;pointer-events:none}
.ribhu-v3 .site-header .theme-toggle svg,.ribhu-v4-guide .guide-header .theme-toggle svg{position:relative;z-index:1;overflow:visible;transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.ribhu-v3 .site-header .theme-toggle:hover,.ribhu-v4-guide .guide-header .theme-toggle:hover{box-shadow:0 0 0 4px #d3ad6623,0 0 22px #d3ad663e;transform:translateY(-2px)}
.ribhu-v3 .site-header .theme-toggle:hover::after,.ribhu-v4-guide .guide-header .theme-toggle:hover::after{opacity:.9;transform:scale(1.7)}
.theme-toggle.is-turning svg{animation:theme-turn .72s cubic-bezier(.2,.8,.2,1)}
.theme-toggle.is-turning::after{opacity:1!important;transform:scale(2.3)!important}
@keyframes theme-orbit{to{transform:rotate(360deg)}}
@keyframes theme-turn{0%{transform:rotate(0) scale(1)}45%{transform:rotate(100deg) scale(.6)}100%{transform:rotate(180deg) scale(1)}}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-new(root){z-index:1}
html.is-motion-paused .theme-toggle::before{animation-play-state:paused}
@media(max-width:650px){.ribhu-v4 .architecture-model .boundary-bridge{height:108px}.ribhu-v4 .architecture-model.is-open .boundary-bridge{height:135px}.ribhu-v4 .architecture-model .bridge-label{left:calc(50% + 24px);gap:5px;font-size:7px;max-width:calc(50% - 28px)}.ribhu-v4 .architecture-model .bridge-label:before{left:-17px;width:12px}.ribhu-v4 .architecture-model .bridge-label>span{font-size:20px}.ribhu-v4 .architecture-model .bridge-label small{font-size:6px}}
@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle svg,.theme-toggle .theme-sun,.theme-toggle .theme-moon,.theme-toggle::after{transition:none!important}.theme-toggle::before,.theme-toggle.is-turning svg{animation:none!important}}
@media(max-width:800px){.ribhu-v4 .architecture-model .bridge-hub{width:min(240px,35%)}.ribhu-v4 .architecture-model .bridge-flow{font-size:8px}}
@media(max-width:650px){.ribhu-v4 .architecture-model .boundary-bridge{height:180px}.ribhu-v4 .architecture-model.is-open .boundary-bridge{height:205px}.ribhu-v4 .architecture-model .bridge-hub{width:45%;height:112px;box-shadow:0 0 0 4px #14272de8,0 0 0 5px #87918a63}.ribhu-v4 .architecture-model .bridge-hub-kicker{font-size:6px}.ribhu-v4 .architecture-model .bridge-hub-glyph{font-size:19px;margin:8px 0}.ribhu-v4 .architecture-model .bridge-hub-glyph i{width:14px}.ribhu-v4 .architecture-model .bridge-hub strong{font-size:7px}.ribhu-v4 .architecture-model .bridge-hub small{font-size:5px}.ribhu-v4 .architecture-model .bridge-flow{top:22px;gap:48px;font-size:6px}.ribhu-v4 .architecture-model .bridge-flow b{font-size:23px}.ribhu-v4 .architecture-model .bridge-port-a-top,.ribhu-v4 .architecture-model .bridge-port-a-bottom{left:14%}.ribhu-v4 .architecture-model .bridge-port-b-top,.ribhu-v4 .architecture-model .bridge-port-b-bottom{left:86%}}

/* Study 04 / the process boundary as one architectural drawing. */
.ribhu-v4 .boundary-v4{--drawing-bg:#17272d;--drawing-ink:#eae6dc;--drawing-muted:#a7b5b2;--drawing-line:#64767a;--drawing-gold:#d1a95f;--drawing-jade:#8bb9b2;--kernel-bg:#1b3035;--kernel-grid:#9cb7b32d;display:block;padding:105px 6% 112px;background:#142329}
html[data-theme="light"] .ribhu-v4 .boundary-v4{--drawing-bg:#f2efe7;--drawing-ink:#20343c;--drawing-muted:#536b70;--drawing-line:#9dadaa;--drawing-gold:#9f6e2e;--drawing-jade:#426d6b;--kernel-bg:#e2e9e4;--kernel-grid:#5c797441;background:#e9e6dc}
.ribhu-v4 .boundary-v4-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:clamp(45px,7vw,140px);align-items:end;margin-bottom:70px}
.ribhu-v4 .boundary-v4 .boundary-copy h2{font:400 clamp(68px,7vw,118px)/.93 var(--serif);letter-spacing:-.065em}
.ribhu-v4 .boundary-v4-explainer{padding-bottom:6px}
.ribhu-v4 .boundary-v4-explainer p{max-width:540px;margin:0;color:var(--muted);font:clamp(15px,1.35vw,20px)/1.7 var(--sans)}
.ribhu-v4 .boundary-v4 .boundary-button{display:flex;justify-content:space-between;width:100%;max-width:540px;margin-top:35px;padding:18px 0;border:0;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);text-align:left}
.ribhu-v4 .architecture-model{width:100%;max-width:none;min-width:0;color:var(--drawing-ink)}
.ribhu-v4 .boundary-drawing-head{display:flex;justify-content:space-between;gap:20px;padding:14px 4px;border-top:1px solid var(--drawing-line);border-bottom:1px solid var(--drawing-line);color:var(--drawing-muted);font:9px/1.4 var(--mono);letter-spacing:.12em}
.ribhu-v4 .boundary-drawing{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.48fr) minmax(0,1fr);min-height:420px;background:var(--drawing-bg);border-bottom:1px solid var(--drawing-line)}
.ribhu-v4 .boundary-process{position:relative;display:flex;flex-direction:column;min-width:0;min-height:420px;padding:30px clamp(22px,3vw,54px) 0;color:var(--drawing-ink);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.ribhu-v4 .architecture-model .boundary-process.surface-layer,.ribhu-v4 .architecture-model .boundary-process.kernel-layer{background:transparent;color:var(--drawing-ink)}
.ribhu-v4 .architecture-model .boundary-process.kernel-layer{background-color:var(--kernel-bg);background-image:linear-gradient(var(--kernel-grid) 1px,transparent 1px),linear-gradient(90deg,var(--kernel-grid) 1px,transparent 1px);background-size:32px 32px}
.ribhu-v4 .boundary-process.surface-layer{border-right:1px solid var(--drawing-line)}
.ribhu-v4 .boundary-process.kernel-layer{border-left:1px solid var(--drawing-line)}
.ribhu-v4 .boundary-process-index{font:9px var(--mono);letter-spacing:.13em;color:var(--drawing-muted)}
.ribhu-v4 .boundary-process-art{display:block;flex:none;width:min(190px,55%);height:115px;margin:20px auto 10px;stroke:var(--drawing-muted);stroke-width:1;opacity:.82}
.ribhu-v4 .boundary-process-art .accent{stroke:var(--drawing-gold);stroke-width:2.7}
.ribhu-v4 .boundary-process-art .accent-fill{fill:var(--drawing-gold);stroke:var(--drawing-gold)}
.ribhu-v4 .boundary-process h3{margin:0;font:400 clamp(44px,4.4vw,77px)/1 var(--serif);letter-spacing:-.055em;color:var(--drawing-ink)}
.ribhu-v4 .boundary-process p{max-width:360px;margin:11px 0 25px;color:var(--drawing-muted);font:13px/1.6 var(--sans)}
.ribhu-v4 .boundary-process-list{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding:15px 0;border-top:1px solid var(--drawing-line);color:var(--drawing-muted);font:8px/1.5 var(--mono);letter-spacing:.07em}
.ribhu-v4 .architecture-model .boundary-bridge{position:relative;height:auto;min-height:420px;border:0;background:repeating-linear-gradient(90deg,transparent 0 31px,color-mix(in srgb,var(--drawing-line) 13%,transparent) 32px,transparent 33px),var(--drawing-bg);color:var(--drawing-ink);overflow:hidden}
.ribhu-v4 .architecture-model .boundary-bridge::before{display:none}
.ribhu-v4 .architecture-model .bridge-shader{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1;pointer-events:none}
.ribhu-v4 .bridge-socket{position:absolute;z-index:2;top:50%;left:50%;display:grid;place-items:center;width:94px;height:94px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid var(--drawing-gold);background:var(--drawing-bg);box-shadow:0 0 0 10px var(--drawing-bg),0 0 0 11px var(--drawing-line)}
.ribhu-v4 .bridge-socket-core{display:flex;align-items:center;gap:5px;transform:rotate(-45deg);color:var(--drawing-gold);font:27px/.8 var(--serif)}
.ribhu-v4 .bridge-socket-core i{display:block;width:22px;height:1px;background:var(--drawing-gold)}
.ribhu-v4 .bridge-direction{position:absolute;z-index:2;left:50%;display:flex;align-items:center;gap:7px;transform:translateX(-50%);color:var(--drawing-muted);font:8px var(--mono);letter-spacing:.12em;white-space:nowrap}
.ribhu-v4 .bridge-direction b{color:var(--drawing-gold);font:19px/1 var(--serif)}
.ribhu-v4 .bridge-direction-request{top:17%}
.ribhu-v4 .bridge-direction-reply{bottom:17%}
.ribhu-v4 .bridge-direction-reply b{color:var(--drawing-jade)}
.ribhu-v4 .bridge-caption{position:absolute;z-index:2;bottom:16px;left:0;width:100%;text-align:center;color:var(--drawing-muted);font:8px var(--mono);letter-spacing:.12em}
.ribhu-v4 .architecture-model.is-open .boundary-process.surface-layer{transform:translateX(-8px)}
.ribhu-v4 .architecture-model.is-open .boundary-process.kernel-layer{transform:translateX(8px)}
.ribhu-v4 .architecture-model.is-open .boundary-bridge{height:auto;min-height:420px}
.ribhu-v4 .architecture-model .boundary-detail{margin:0;padding:25px 30px;border:0;border-bottom:1px solid var(--drawing-line);background:var(--drawing-bg);color:var(--drawing-muted)}
.ribhu-v4 .architecture-model .boundary-detail strong{color:var(--drawing-ink)}
.ribhu-v4 .architecture-model .boundary-detail a{color:var(--drawing-gold);border-color:var(--drawing-gold);font:10px var(--mono)}
html[data-theme="light"] .ribhu-v4 .architecture-model .boundary-detail{background:var(--drawing-bg);color:var(--drawing-muted)}
html[data-theme="light"] .ribhu-v4 .architecture-model .boundary-detail strong{color:var(--drawing-ink)}
@media(max-width:900px){.ribhu-v4 .boundary-v4-intro{grid-template-columns:1fr;gap:28px}.ribhu-v4 .boundary-v4-explainer{display:grid;grid-template-columns:1fr auto;gap:25px;align-items:end}.ribhu-v4 .boundary-v4 .boundary-button{min-width:190px;margin:0}.ribhu-v4 .boundary-drawing{grid-template-columns:minmax(0,1fr) minmax(145px,.4fr) minmax(0,1fr)}.ribhu-v4 .boundary-process{padding-inline:20px}.ribhu-v4 .boundary-process h3{font-size:clamp(33px,4.8vw,52px)}.ribhu-v4 .boundary-process-art{width:70%}}
@media(max-width:650px){.ribhu-v4 .boundary-v4{padding:60px 20px 70px}.ribhu-v4 .boundary-v4-intro{margin-bottom:40px}.ribhu-v4 .boundary-v4 .boundary-copy h2{font-size:clamp(56px,12vw,75px)}.ribhu-v4 .boundary-v4-explainer{display:block}.ribhu-v4 .boundary-v4-explainer p{font-size:14px}.ribhu-v4 .boundary-v4 .boundary-button{margin-top:25px}.ribhu-v4 .boundary-drawing-head{font-size:7px}.ribhu-v4 .boundary-drawing{display:block}.ribhu-v4 .boundary-process{min-height:310px;padding:22px 24px 0}.ribhu-v4 .boundary-process.surface-layer{border-right:0;border-bottom:1px solid var(--drawing-line)}.ribhu-v4 .boundary-process.kernel-layer{border-left:0;border-top:1px solid var(--drawing-line)}.ribhu-v4 .boundary-process-art{width:115px;height:75px;margin:14px auto}.ribhu-v4 .boundary-process h3{font-size:49px}.ribhu-v4 .architecture-model .boundary-bridge,.ribhu-v4 .architecture-model.is-open .boundary-bridge{height:160px;min-height:160px}.ribhu-v4 .bridge-socket{width:58px;height:58px}.ribhu-v4 .bridge-socket-core{font-size:19px}.ribhu-v4 .bridge-socket-core i{width:9px}.ribhu-v4 .bridge-direction-request{top:13%;left:25%}.ribhu-v4 .bridge-direction-reply{bottom:13%;left:75%}.ribhu-v4 .bridge-direction b{transform:rotate(90deg)}.ribhu-v4 .bridge-caption{bottom:6px;font-size:7px}.ribhu-v4 .architecture-model.is-open .boundary-process.surface-layer{transform:translateY(-6px)}.ribhu-v4 .architecture-model.is-open .boundary-process.kernel-layer{transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.ribhu-v4 .boundary-process{transition:none}}
/* The scroll story wraps the art, so the wrapper needs the mobile order.
   Its full panel exceeds a phone viewport; keep all controls in normal flow. */
@media(max-width:820px){
  .ribhu-v4 .hero>.scroll-story--joint{order:2;height:auto}
  .ribhu-v4 .scroll-story--joint .hero-art{position:relative;top:auto;max-height:none}
}
