/* One physical vocabulary: ink, paper, a small pull, then rest. */
:root{--craft-ease:cubic-bezier(.2,.75,.2,1);--craft-ink:#264d39;--craft-wash:#eaf0e8;--craft-duration:280ms}
[data-craft-surface=utility]{--craft-ink:#a2d1d7;--craft-wash:#ffffff12}
[data-craft-surface=demo]{--craft-ink:#b9d5bc;--craft-wash:#ffffff0c}
@media(scripting:enabled) and (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-old(root){animation:craft-out 140ms ease-out both}
::view-transition-new(root){animation:craft-in 300ms var(--craft-ease) both}
::view-transition-group(root){animation-duration:300ms}
::view-transition{pointer-events:none}
@keyframes craft-out{to{opacity:0;transform:translateY(-3px)}}
@keyframes craft-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
html[data-craft-quiet]::view-transition-old(root),html[data-craft-quiet]::view-transition-new(root){animation:none}
html:focus-within{scroll-behavior:auto}
body[data-craft-surface] :where(a,button,summary,select,input){-webkit-tap-highlight-color:transparent}
body[data-craft-surface] :where(a,button,summary,select,input):focus-visible{outline:2px solid var(--craft-ink);outline-offset:5px}
body[data-craft-surface] :where(button,summary,select){transition:background-color 160ms,color 160ms,border-color 160ms,box-shadow 160ms}
body[data-craft-surface] :where(button,summary):active{background-color:var(--craft-wash)}
body[data-craft-surface] button:disabled{cursor:default}
body[data-craft-surface] :where(header nav,footer nav,.back-link,.card-supporting-links,.article-source,.credits,.wrap) a{ text-decoration-thickness:1px;text-underline-offset:.3em }
body[data-craft-surface] :where(header nav,footer nav) a{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0 1px;background-position:0 calc(100% - 3px);transition:background-size 240ms var(--craft-ease),color 160ms}
body[data-craft-surface] :where(header nav,footer nav) a:is(:hover,:focus-visible){background-size:100% 1px}
.card-action{position:relative;isolation:isolate;transition:color 180ms,padding-left 300ms var(--craft-ease)}
.card-action:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--craft-ink);transform:scaleX(0);transform-origin:left;transition:transform 400ms var(--craft-ease)}
.work-card:is(:hover,:focus-within) .card-action{padding-left:7px;color:#173f29}
.work-card:is(:hover,:focus-within) .card-action:after{transform:scaleX(1)}
.card-copy h3 span,.intro-actions a>span,.contact .arrow{display:inline-block;transition:transform 350ms var(--craft-ease)}
.work-card:is(:hover,:focus-within) h3 span{transform:translate(3px,-3px)}
.primary-link:is(:hover,:focus-visible)>span{transform:translateY(3px)}
.contact>a:is(:hover,:focus-visible) .arrow{transform:translate(5px,-5px) rotate(5deg)}
.intro-window>a{display:block;overflow:hidden;position:relative;border-radius:3px}
.craft-visual{--craft-x:0px;--craft-y:0px;--craft-base-scale:1;--craft-zoom:1}
.craft-visual>img{transform:translate(var(--craft-x),var(--craft-y)) scale(calc(var(--craft-base-scale) * var(--craft-zoom)))!important;transition:transform 650ms var(--craft-ease);width:100%;display:block}
.craft-visual.card-genesis{--craft-base-scale:1.25}
.craft-visual:is(:hover,:focus-visible){--craft-zoom:1.045}
.craft-visual.card-irodori{--craft-zoom:1}
.craft-reticle{position:absolute;right:20px;bottom:20px;width:46px;height:46px;display:grid;place-items:center;color:#1d3125;background:#fcfcf7ed;border-radius:49% 45% 51% 43%;z-index:3;opacity:0;pointer-events:none;transform:translate(var(--craft-rx,0px),var(--craft-ry,6px)) rotate(-10deg) scale(.85);transition:opacity 180ms,transform 400ms var(--craft-ease);box-shadow:2px 3px 0 #00000018}
.craft-reticle svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.craft-visual:is(:hover,:focus-visible) .craft-reticle{opacity:1;transform:translate(var(--craft-rx,0px),var(--craft-ry,0px)) rotate(0deg) scale(1)}
.craft-trace{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;fill:none;stroke:#edf5d7;stroke-width:1;opacity:0}
.craft-trace path{stroke-dasharray:1;stroke-dashoffset:1}
.card-visual.card-irodori>img{transform-origin:50% 67%}
.paper-sheet,.app-sheet,.paper-arrow{transition:transform 550ms var(--craft-ease),box-shadow 550ms var(--craft-ease)}
.paper-visual:is(:hover,:focus-visible) .paper-sheet{transform:translate(-3px,-5px) rotate(-5deg);box-shadow:8px 12px 0 #d5ddcf}
.paper-visual:is(:hover,:focus-visible) .app-sheet{transform:translate(3px,-2px) rotate(2deg);box-shadow:6px 10px 0 #cdd9c6}
.paper-visual:is(:hover,:focus-visible) .paper-arrow{transform:translate(2px,-3px)}
.craft-press-mark{position:fixed;width:54px;height:54px;pointer-events:none;z-index:2147483646;color:var(--craft-ink);opacity:0;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;overflow:visible}
.craft-reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:1001;pointer-events:none;background:var(--craft-ink);transform:scaleX(var(--craft-read,0));transform-origin:left;opacity:.5}
.reading-index li a{transition:background-color 220ms,border-color 220ms,padding 220ms var(--craft-ease),color 220ms}
.next-work{position:relative;transition:background-color 250ms,color 250ms;isolation:isolate}
.next-work:after{content:'';position:absolute;inset:-1px 0 auto;height:1px;background:var(--craft-ink);transform-origin:left;transform:scaleX(0);transition:transform 500ms var(--craft-ease)}
.next-work:is(:hover,:focus-visible):after{transform:scaleX(1)}
.next-work strong{transition:translate 350ms var(--craft-ease)}
.next-work:is(:hover,:focus-visible) strong{translate:-6px 0}
.evidence-figure,.ci-figure,.replay-lab{transition:border-color 280ms,box-shadow 280ms}
.evidence-figure:focus-within,.ci-figure:focus-within,.replay-lab:focus-within{border-color:#74927f;box-shadow:0 0 0 3px #719e830c}
.craft-disclosure>summary{position:relative;padding-right:28px!important;list-style:none}
.craft-disclosure>summary::-webkit-details-marker{display:none}
.craft-disclosure>summary:after{content:'+';position:absolute;right:5px;top:50%;font:300 20px/1 monospace;transform:translateY(-50%);transition:transform 260ms var(--craft-ease);color:inherit}
.craft-disclosure[open]>summary:after{transform:translateY(-50%) rotate(45deg)}
.craft-range{accent-color:var(--craft-ink)}
.craft-range:focus-visible{outline-offset:7px!important}
.craft-range::-webkit-slider-thumb{transition:box-shadow 150ms}
.craft-range:active::-webkit-slider-thumb{box-shadow:0 0 0 7px #719e8326}
[data-craft-surface=forest] .trail-tools button,[data-craft-surface=forest] #interact,[data-craft-surface=forest] #place-link{transition:background-color 180ms,box-shadow 240ms,border-color 180ms}
[data-craft-surface=forest] .trail-tools button:hover,[data-craft-surface=forest] #interact:hover{box-shadow:2px 3px 0 #24342518}
[data-craft-surface=forest] #place[open]{animation:craft-dialog 320ms var(--craft-ease) both}
@keyframes craft-dialog{from{opacity:0;transform:translateY(10px) rotate(-.5deg)}to{opacity:1;transform:none}}
[data-craft-surface=forest] #place::backdrop{animation:craft-backdrop 220ms ease-out both}
@keyframes craft-backdrop{from{opacity:0}to{opacity:1}}
.craft-pipeline-stage{width:100%;height:auto;max-height:245px;display:block;margin:0 auto 24px;color:#263e2e}
.craft-pipeline-stage .stage-group{transition:opacity 350ms,transform 500ms var(--craft-ease);transform-box:fill-box;transform-origin:center}
.craft-pipeline-stage .stage-group:not(.is-current){opacity:.18;transform:scale(.91)}
.craft-pipeline-stage .stage-group.is-current{opacity:1;transform:scale(1)}
.craft-pipeline-stage .flow-thread{stroke:#668b6f;stroke-width:1.3;stroke-dasharray:3 6}
.craft-pipeline-stage .flow-dot{fill:#41694e;transition:cx 450ms var(--craft-ease)}
.pipeline[data-craft-pipeline]{gap:0}
.pipeline[data-craft-pipeline] li{padding:0;border-left:0;background:transparent}
.pipeline-choice{display:block;width:100%;text-align:left;padding:14px 14px 18px;border:0;border-top:1px solid #cad6c8;background:transparent;color:inherit;cursor:pointer;font:inherit;min-height:112px}
.pipeline-choice[aria-pressed=true]{border-top:2px solid #41694e;background:#edf3e9;padding-top:13px}
.pipeline-choice strong{font-size:15px}.pipeline-choice span{font-size:13px}
.pipeline-choice:enabled:hover{background:#f0f4ed}.pipeline-choice:focus-visible{outline-offset:-3px!important}
.pipeline-note{display:none;font-size:12px;color:#587060;margin:12px 0 0}
.pipeline-figure.is-interactive .pipeline-note{display:block}
.pipeline-figure:not(.is-interactive) .stage-group{opacity:1;transform:none}
.case-table tbody tr{transition:background-color 180ms}.case-table tbody tr:hover{background:#eaf1e6}
.case-controls output{font-variant-numeric:tabular-nums;border-bottom:1px solid #c4d2c9;padding:5px 0}
.genesis-replay__branch{transition:border-color 300ms,background-color 300ms}
.genesis-replay[data-replay-phase=matched] .genesis-replay__branch{border-color:#56815d;background:linear-gradient(#edf4e8,transparent)}
.genesis-replay[data-replay-phase=matched] [data-replay-status]{color:#285c3b}
.genesis-replay[data-replay-phase=different] [data-replay-status],.genesis-replay[data-replay-phase=error] [data-replay-status]{color:#8b4d30}
.genesis-replay progress::-webkit-progress-value{transition:width 180ms linear}
.ci-map rect{transition:fill 220ms,stroke 150ms}
.ci-controls button[disabled],.genesis-replay__actions button[disabled]{transition:opacity 160ms}
@media(hover:none){.craft-reticle{display:none}.craft-visual:is(:hover){--craft-zoom:1}.craft-visual.card-genesis{--craft-base-scale:1.25}}
@media(max-width:600px){.craft-reticle{width:38px;height:38px;right:12px;bottom:12px}.craft-pipeline-stage{margin-bottom:18px}.pipeline-choice{min-height:112px}.pipeline-choice strong{font-size:14px}}
html[data-craft-quiet] body[data-craft-surface] *,html[data-craft-quiet] body[data-craft-surface] *:before,html[data-craft-quiet] body[data-craft-surface] *:after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}
html[data-craft-quiet] .craft-visual{--craft-x:0px!important;--craft-y:0px!important;--craft-zoom:1!important}
html[data-craft-quiet] .craft-trace{display:none}
html[data-craft-quiet] .paper-sheet,html[data-craft-quiet] .paper-arrow{transform:none!important}
html[data-craft-quiet] .app-sheet{transform:rotate(6deg)!important}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none}
 body[data-craft-surface] *,body[data-craft-surface] *:before,body[data-craft-surface] *:after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}
 .craft-visual{--craft-x:0px!important;--craft-y:0px!important;--craft-zoom:1!important}.craft-trace{display:none}
}
@media print{.craft-reticle,.craft-trace,.craft-press-mark,.craft-reading-progress{display:none!important}}
