/* A quiet, tactile finish for the editorial identity. All texture is static. */
:root{
 --surround:#e8e3d9;
 --surface-light:rgba(255,255,255,.36);
 --surface-shade:rgba(115,82,36,.035);
 --edge-light:rgba(255,255,255,.6);
 --surface-shadow:rgba(60,44,22,.055);
 --grain-opacity:.12;
 --success:#3d6546;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --surround:#161512;
 --surface-light:rgba(235,219,187,.035);
 --surface-shade:rgba(0,0,0,.08);
 --edge-light:rgba(255,246,221,.065);
 --surface-shadow:rgba(0,0,0,.15);
 --grain-opacity:.22;
 --success:#a9c59a;
}}
:root[data-theme="dark"]{
 --surround:#161512;
 --surface-light:rgba(235,219,187,.035);
 --surface-shade:rgba(0,0,0,.08);
 --edge-light:rgba(255,246,221,.065);
 --surface-shadow:rgba(0,0,0,.15);
 --grain-opacity:.22;
 --success:#a9c59a;
}
body:not(.proof){background-color:var(--surround)}
body::before{
 content:"";position:fixed;inset:0;z-index:2;pointer-events:none;
 background:url('/assets/paper-grain.svg') repeat;
 opacity:var(--grain-opacity);mix-blend-mode:soft-light;
}
#sheet{
 background-image:radial-gradient(ellipse at 12% 0%,var(--surface-light),transparent 60%),linear-gradient(115deg,transparent 35%,var(--surface-shade));
 box-shadow:0 0 0 1px var(--surface-shadow),0 20px 70px var(--surface-shadow);
}
body:is(.legal-page,.error-page){
 background-color:var(--paper);
 background-image:radial-gradient(ellipse at 10% 0%,var(--surface-light),transparent 70%);
}
.nav{
 background:color-mix(in srgb,var(--paper) 88%,transparent);
 backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);
 box-shadow:inset 0 1px 0 var(--edge-light),0 8px 24px var(--surface-shadow);
}
.nav-links a{position:relative;transition:color .18s}
.nav-links a::after{
 content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;
 background:var(--shu);transform:scaleX(0);transform-origin:left;transition:transform .2s;
}
.nav-links a:focus-visible::after{transform:scaleX(1)}
.quick-choices .chooser{
 border-color:color-mix(in srgb,var(--ink) 28%,var(--paper));
 background:var(--rule);box-shadow:0 8px 24px var(--surface-shadow);
}
.quick-choices .word{position:relative;transition:background-color .2s,color .2s}
.quick-choices .word:not([aria-pressed="true"]){
 background-image:linear-gradient(145deg,var(--surface-light),transparent 75%);
 box-shadow:inset 0 1px 0 var(--edge-light);
}
.quick-choices .word .n{font-variant-numeric:tabular-nums;letter-spacing:.08em}
.quick-choices .word .w{transition:transform .2s}
.quick-choices .word[data-type]::after{
 content:"";position:absolute;top:13px;right:13px;width:7px;height:7px;
 border-top:1px solid var(--shu);border-right:1px solid var(--shu);
 opacity:0;transform:translate(-2px,2px);transition:opacity .2s,transform .2s;
}
.quick-choices .word[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--shu)}
.btn{transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s}
.btn:not(.ghost):not(.link){box-shadow:inset 0 1px 0 var(--edge-light),0 2px 0 var(--surface-shadow)}
.btn:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
 outline:2px solid var(--shu);outline-offset:4px;
}
#freeText{box-shadow:0 1px 0 var(--edge-light);transition:border-color .2s,box-shadow .2s}
#freeText:focus-visible{outline:none;box-shadow:0 1px 0 var(--shu)}
.tw{white-space:nowrap;letter-spacing:.01em}
.service-card{box-shadow:inset 0 1px 0 var(--edge-light)}
.case-map,.contact-form{
 background-image:linear-gradient(135deg,var(--surface-light),transparent 75%);
 box-shadow:inset 0 1px 0 var(--edge-light);
}
.form-fields input,.form-fields textarea,.form-fields select{
 box-shadow:inset 0 1px 2px var(--surface-shadow);transition:border-color .18s,box-shadow .18s;
}
.form-fields :is(input,textarea,select):focus-visible{
 outline:none;border-color:var(--shu);box-shadow:0 0 0 3px color-mix(in srgb,var(--shu) 12%,transparent);
}
#contactStatus[data-state="success"]{color:var(--success)}
@media(hover:hover) and (pointer:fine){
 .nav-links a:hover::after{transform:scaleX(1)}
 .quick-choices .word[data-type]:not([aria-pressed="true"]):hover .w{transform:translateX(2px)}
 .quick-choices .word[data-type]:hover::after{opacity:1;transform:translate(0,0)}
 .btn:not(.link):hover{transform:translateY(-1px);box-shadow:0 4px 10px var(--surface-shadow)}
 .service-link:hover{color:var(--shu)}
}
@media(prefers-reduced-motion:reduce){
 .nav-links a::after,.quick-choices .word,.quick-choices .word .w,.quick-choices .word::after,.btn,
 #freeText,.form-fields input,.form-fields textarea,.form-fields select{transition:none}
 .btn:hover,.btn:active,.quick-choices .word:hover .w{transform:none!important}
}
