:root{--paper:#f5f3eb;--ink:#20241f;--muted:#555b52;--line:#d5d7cc;--accent:#a64227;--sans:system-ui,-apple-system,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--w:1300px;--g:clamp(18px,5.1vw,78px);--shadow:0 15px 50px #17232612}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.75}
button,input{font:inherit} button{cursor:pointer} [hidden]{display:none!important}
a{color:inherit;text-decoration:none} a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid #9a4b16;outline-offset:4px}
img{max-width:100%;height:auto;display:block}
figure,ul,dl,dd{margin:0} p{margin:0 0 1.15em} h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}
h2{font-size:clamp(2rem,4.6vw,4.9rem);letter-spacing:-.045em} h3{font-size:1.23rem}
.wrap{max-width:calc(var(--w) + var(--g)*2);margin-inline:auto;padding-inline:var(--g)}
.section{padding-block:clamp(64px,9vw,142px)} .section h2{margin-bottom:.45em}
.lead{max-width:48em;color:var(--muted)}
.icon{width:27px;height:27px;flex:none} .kicker,.over,.compare-label,.card-top,.proposal-meta,.fv-id,.fv-group-title>span,.foot-tail{font-family:var(--mono);letter-spacing:.12em;font-size:.72rem;font-weight:700}
.over{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:var(--accent);margin-bottom:20px}.over span:first-child{border-top:1px solid;padding-top:3px}.over span+span{padding-top:4px}
.credit,figcaption{font-size:.75rem;line-height:1.55;color:var(--muted)} .credit a,figcaption a,.hero-credit a{text-decoration:underline;text-underline-offset:2px}
.button,.text-link{display:inline-flex;min-height:48px;align-items:center;justify-content:space-between;gap:14px;font-size:.9rem;font-weight:750}
.button{padding:.65rem 1.12rem;border:1px solid transparent;background:var(--ink);color:#fff;transition:background .18s,color .18s,border-color .18s}
.button:hover{background:var(--accent);color:#fff}.button.outline{color:var(--ink);border-color:var(--line);background:transparent}.button.outline:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.text-link{padding:.15rem 0;border-bottom:1px solid currentColor}.text-link:hover{color:var(--accent)}
.skip{position:fixed;top:.5rem;left:.5rem;padding:.7rem;background:white;color:#222;z-index:30;transform:translateY(-140%)} .skip:focus{transform:none}
.site-header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .2s}.site-header.scrolled{box-shadow:0 4px 18px #17232616}
.header-inner{max-width:calc(1500px + var(--g)*2);padding:0 var(--g);margin:auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{min-height:52px;display:flex;align-items:center;gap:12px;white-space:nowrap;line-height:1.2}.brand strong{display:block;font-size:1.14rem;letter-spacing:.045em}.brand small{display:block;font:700 .58rem var(--mono);letter-spacing:.09em;margin-top:4px;color:var(--muted)}
.brand-mark{height:37px;width:37px;display:grid;place-content:center;grid-auto-flow:column;background:#20251f;color:#faf9ee;font:800 1.5rem var(--sans);line-height:1;border-radius:4px}.brand-mark span{color:#f19964}
.site-header nav{display:flex;align-items:center;gap:clamp(12px,2vw,34px)}.nav-link{font-size:.84rem;font-weight:700;display:flex;align-items:center;min-height:46px;white-space:nowrap}.nav-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
.menu{display:none;min-width:48px;min-height:48px;border:1px solid var(--line);background:transparent;color:inherit}.menu span{height:1.5px;width:20px;background:currentColor;display:block;margin:5px auto;transition:transform .2s}.menu[aria-expanded=true] span:first-child{transform:translateY(3.25px) rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.proposal-bar{background:#e9ebdf;border-bottom:1px solid var(--line);font-size:.73rem;font-weight:650}.proposal-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:8px}.proposal-bar a{display:inline-flex;align-items:center;gap:6px;min-height:44px}.proposal-bar a:hover{text-decoration:underline}.proposal-bar b{margin-left:.4em;font-family:var(--mono)}
.footer{background:#20251f;color:#f7f4e8;padding-block:62px 18px}.foot-main{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:35px}.foot-main strong{display:block;font-size:clamp(1.6rem,4vw,2.7rem);margin:.35em 0}.foot-main p{font-size:.9rem;color:#d9ddcd}.foot-links{display:grid;grid-template-columns:auto auto;gap:0 25px;align-content:start}.foot-links a,.foot-main p a{display:inline-flex;align-items:center;min-height:44px}.foot-links a:hover,.foot-main p a:hover{text-decoration:underline}.foot-tail{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid #ffffff42;padding-top:18px;color:#dedfd3}
.proposal,.gallery{--paper:#f6f5ef;--ink:#222721;--line:#d8dbd1}
.proposal-intro{padding-top:28px}.proposal-meta{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:16px;color:#555e54}
.proposal-title{text-align:center;padding-block:clamp(38px,6vw,95px) clamp(42px,6vw,88px)}
.proposal-title .kicker{color:#765445;display:flex;align-items:center;justify-content:center;gap:8px}.proposal-title .kicker span{width:7px;height:7px;border-radius:50%;background:#ae5230}
.proposal-title h1{font-size:clamp(2.25rem,5.4vw,5.7rem);font-weight:780;letter-spacing:.045em;line-height:1.12}
.proposal-title h1 span{display:block;font-size:clamp(1rem,3.25vw,3.05rem);font-weight:760;letter-spacing:.16em;margin:.33em 0 0}
.proposal-title>p:last-child{color:var(--muted);font-size:clamp(.86rem,1.3vw,1.06rem);margin:1.35em 0 0}
.comparison{padding-bottom:clamp(60px,8vw,120px)} .compare-label{display:flex;justify-content:space-between;gap:12px;color:var(--muted);border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:18px}
.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(15px,2.2vw,32px)}
.compare-card{--card-accent:#244a38;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);padding:clamp(10px,1.6vw,22px);box-shadow:var(--shadow)}.compare-card:nth-child(2){--card-accent:#2347a8}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;color:var(--card-accent);font-size:.69rem}.card-top span:first-child{color:#fff;background:var(--card-accent);padding:.3em .65em}
.preview-link{display:block;overflow:hidden}.preview-link:hover .mini-body img{scale:1.045}
.mini{font-size:clamp(.35rem,.65vw,.69rem);border:1px solid #0003;line-height:1.2}
.mini-top{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:6px;background:#f7f1e7;color:#254334;font-weight:700}
.mini-body{position:relative;aspect-ratio:2.15;background:#192e25;color:#fff;overflow:hidden;display:flex;align-items:center}.mini-body img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale .3s}.mini.a .mini-body::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b221cde,transparent)}
.mini-copy{position:relative;z-index:1;padding:0 6%;display:grid;justify-items:start;gap:8px}.mini-copy b{font-family:var(--serif);font-size:clamp(.8rem,2.15vw,2rem);line-height:1.15}.mini-copy small{font-family:var(--mono);letter-spacing:.08em}
.mini-copy>span{color:#242018;background:#f2bd93;padding:.35em .62em;font-weight:750}.mini.b .mini-top{background:#fff;color:#172542}.mini.b .mini-body{background:#101c34}.mini.b img{left:auto;width:45%;filter:saturate(.7)}.mini.b .mini-copy b{font-family:var(--sans);font-weight:850}.mini.b .mini-copy>span{background:#2150dc;color:#fff}
.compare-credit{margin:7px 0 0;font-size:.65rem}.card-copy{padding:clamp(13px,2vw,27px) 2% 3%;display:flex;flex:1;flex-direction:column}.card-copy h2{font-size:clamp(1.12rem,2.35vw,2.16rem);margin-bottom:.4em}.card-copy p{font-size:.9rem;color:var(--muted)}
.features-inline{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 18px}.features-inline span{font-size:.72rem;font-weight:700;background:#f2f4ef;padding:3px 8px;color:#37443b}.card-bottom{border-top:1px solid var(--line);padding-top:15px;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-bottom .button{background:var(--card-accent)}.card-bottom .button:hover{background:#20251f}
.swatches{display:flex;gap:6px}.swatches i{display:block;width:20px;height:20px;background:var(--swatch);border-radius:50%;border:1px solid #0002}
.next-proposal{background:#e9ece2;display:flex;justify-content:space-between;gap:24px;align-items:center;padding-block:clamp(40px,6vw,88px);margin-bottom:0}.next-proposal h2{font-size:clamp(1.75rem,3.8vw,3.8rem);margin-bottom:.4em}.next-proposal p{margin:0;color:var(--muted)}.next-proposal .button{flex:none}
body.a{--serif:"source-han-serif-japanese","Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;--paper:#f6f1e6;--ink:#1c382c;--muted:#4c5b4e;--accent:#a64626;--line:#d8d3c4}
body.a h1,body.a h2,body.a h3{font-family:var(--serif);font-weight:700;letter-spacing:-.035em}
body.a .brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.a-hero{isolation:isolate;position:relative;overflow:hidden;min-height:clamp(550px,53vw,800px);display:grid;background:#1c382c;color:#fff}
.a-hero-photo,.a-hero-photo::after{position:absolute;inset:0;z-index:-1}.a-hero-photo{inset:-3% 0}.a-hero-photo img{height:100%;width:100%;object-fit:cover;object-position:50% 48%;animation:hero-in .85s ease-out both}.a-hero-photo::after{content:"";z-index:1;background:linear-gradient(90deg,#081b15ed 0%,#102a20a0 42%,#132d201e 80%),linear-gradient(0deg,#0a231ac2,transparent 32%)}
.a-hero-inner{width:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding-block:28px 30px;gap:30px}
.hero-loc{font-size:.78rem;letter-spacing:.13em;border:1px solid #ffffff73;padding:.4em .7em;background:#142c21a1;display:flex;gap:6px;align-items:center}
.hero-loc i,.scroll-mark span{display:block;width:6px;height:6px;border-radius:50%;background:#f0a77c}
.a-hero .kicker{color:#ffcbab}.a-hero h1{font-size:clamp(3.1rem,8.5vw,9.2rem);line-height:1.03;letter-spacing:-.085em;margin:.15em 0 .22em}.a-hero p{font-size:clamp(.9rem,1.4vw,1.15rem);letter-spacing:.025em;line-height:1.85;color:#fbf8ee}.button.warm{background:#efb58e;color:#272219}.button.warm:hover{background:#fff4d9}
.hero-credit{position:absolute;right:var(--g);bottom:12px;color:#fff;font-size:.65rem;max-width:50%;text-align:right;background:#10251edb;padding:4px 7px}
.scroll-mark{display:flex;gap:7px;align-items:center;font:700 .66rem var(--mono);letter-spacing:.12em;min-height:44px}.scroll-mark:hover{text-decoration:underline}
.a-intro-grid,.a-about-grid,.access-grid,.contact-grid{display:grid;align-items:center;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,7vw,105px)}
.a-intro-grid>div>p,.a-about-grid>div>p{max-width:34em;color:var(--muted);font-size:clamp(.95rem,1.3vw,1.13rem);line-height:2}
.photo img{width:100%;height:auto;aspect-ratio:1.45;object-fit:cover;transition:object-position .3s;object-position:center 45%}.photo:hover img{object-position:center 57%}.photo figcaption{margin-top:8px}.intro-photo{transform:translateY(16px);padding:9px 0 0 9px;border-left:1px solid #ae9a78;border-top:1px solid #ae9a78}
.a-support{background:#e9e1d1}.support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,4vw,68px);margin-block:30px 25px}.support-grid article{border-top:1px solid #bdb7a7;display:grid;grid-template-columns:auto auto 1fr;gap:clamp(8px,1.5vw,20px);padding:23px 0;align-items:start}.support-grid article:nth-last-child(-n+2){border-bottom:1px solid #bdb7a7}.support-number{color:var(--accent);font:700 .75rem var(--mono);padding-top:.5em}.support-grid .icon{color:#80543b}.support-grid h3{font-size:clamp(1.08rem,2.3vw,1.58rem)}.support-grid p{font-size:.9rem;margin:.28em 0 0;color:var(--muted)}.support-grid .question,.b-service .question{font-weight:750;color:var(--ink)}
.a-about{background:#243d31;color:#fcf5e6}.a-about .a-about-grid>div>p,.a-about figcaption{color:#e1e8db}.a-about .over{color:#ffbc92}.a-about .text-link{display:flex;width:max-content;max-width:100%;margin-bottom:5px}.a-about .text-link:hover{color:#ffbc92}
.heading-row{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:18px}.rail-controls{display:flex;gap:6px;margin-bottom:14px}.rail-controls button,.lightbox-bottom button,.lightbox-top button{min-width:48px;min-height:48px;border:1px solid currentColor;background:transparent;color:inherit}.rail-controls button:hover{background:var(--ink);color:#fff}
.activity-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.a .activity-rail{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(240px,41%);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:4px 4px 15px;scrollbar-color:#627463 #e8e2d4}.a .activity-card{scroll-snap-align:start}.activity-card{background:#fff;border:1px solid var(--line)}.activity-card a{display:block;height:100%}.act-image{background:#e7e0d2;overflow:hidden;padding:16px 8px;display:grid;place-items:center;min-height:230px}.act-image img{height:clamp(170px,23vw,285px);width:auto;max-width:100%;object-fit:contain;transition:transform .25s}.activity-card a:hover img{transform:scale(1.04)}.activity-text{padding:18px;position:relative}.activity-text h3{margin:.35em 0}.activity-text p{font-size:.87rem;color:var(--muted);margin:0 20px 0 0}.activity-text>span:last-child{position:absolute;right:16px;bottom:12px}.activities .credit{margin-top:10px}
.a-news{background:#eee7d8}.news-list{list-style:none;padding:0;border-top:1px solid var(--line);margin:25px 0}.news-list li{border-bottom:1px solid var(--line)}.news-list a{display:grid;grid-template-columns:7rem 6.5rem 1fr auto;gap:14px;align-items:center;min-height:64px;padding:12px 4px;transition:background .15s}.news-list a:hover{background:#00000007}.news-list time{font-family:var(--mono);font-weight:700;font-size:.86rem}.news-tag{font-size:.72rem;font-weight:700;color:var(--muted)}.news-list strong{font-size:.94rem}
.access{background:#f5f4ed}.access-grid{gap:clamp(22px,4vw,70px)}.access dl{display:grid;grid-template-columns:max-content 1fr;gap:0 20px;margin:0 0 20px;font-size:.92rem}.access dt,.access dd{padding-block:.6em;border-bottom:1px solid var(--line)}.access dt{font-weight:750}.access .text-link{margin-left:.3em}.map-panel{min-width:0;background:#e8ebdf;border:1px solid var(--line)}.map-panel iframe{display:block;border:0;width:100%;height:auto;aspect-ratio:640/380}
.contact{background:#1c382c;color:#fff7e8}.contact .over{color:#ffc39d}.contact-grid{align-items:start}.contact-grid p{color:#e5eadb;line-height:1.95}.contact-ways{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-phone,.contact-way{display:flex;gap:9px;align-items:center;min-height:54px;padding:10px 13px;border:1px solid #ffffff5f;font-size:.86rem;font-weight:750}.contact-phone{grid-column:1/-1;background:#fff5e6;color:#243b30}.contact-phone strong{display:block;font-size:clamp(1.2rem,2.8vw,2rem);letter-spacing:.02em;line-height:1.2}.contact-ways small{display:block;font-size:.72rem;font-weight:600;overflow-wrap:anywhere}.contact-ways a>span:last-child{margin-left:auto}.contact-way:has(small){grid-column:1/-1}.contact-phone:hover,.contact-way:hover{background:#ffd1ad;color:#242822}
body.b{--display:"source-han-sans-japanese",var(--sans);--paper:#f7f9fd;--ink:#101c34;--accent:#1e46be;--muted:#43536c;--line:#d5deed}
body.b h1,body.b h2,body.b h3{font-family:var(--display);font-weight:700}.b .brand{flex-direction:column;align-items:flex-start;justify-content:center;gap:0}.b .proposal-bar{background:#e7eefb}.b .button:not(.outline){background:#2150d8}.b .button:not(.outline):hover{background:#17379a}
.b-hero{background:#101c34;color:white;overflow:hidden}.b-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0}.b-hero-copy{position:relative;min-height:clamp(445px,43vw,670px);padding:clamp(36px,5vw,82px) clamp(16px,3vw,50px) clamp(32px,5vw,70px) 0;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;background:linear-gradient(90deg,transparent 98%,#e5edff10 98%) 0 0/25% 100%}
.b-index{font:700 .72rem var(--mono);letter-spacing:.12em;color:#a7c2ff;display:flex;flex-wrap:wrap;gap:9px 20px;border-top:1px solid #52627e;width:100%;padding-top:10px;margin-bottom:clamp(24px,4vw,65px)}.b-index span:last-child{margin-left:auto}
.b-hero h1{font-size:clamp(2.7rem,5.25vw,6.15rem);line-height:1.055;letter-spacing:-.09em;margin-bottom:.32em}.b-hero h1>span{display:block;animation:hero-type-in .42s ease-out both}.b-hero h1>span+span{animation-delay:.08s}.blue-dot{color:#8aabff}.b-hero p{color:#e0e9fc;font-size:clamp(.85rem,1.3vw,1.1rem);line-height:1.8}.b-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.b-hero .outline{color:#fff;border-color:#9baccc}.b-hero .outline:hover{background:#fff;color:#101c34}
.b-hero-photo{position:relative;min-width:0;isolation:isolate;border-left:3px solid #4d7aff}.b-hero-photo img{height:100%;width:100%;object-fit:cover;object-position:48% 55%;position:absolute;inset:0;filter:saturate(.72) contrast(.96)}.b-hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0e1b36af,transparent 24%),linear-gradient(105deg,#2148a631,transparent)}.b-hero-photo figcaption{position:absolute;z-index:1;bottom:12px;left:12px;right:12px;color:#fff;background:#101c34e5;padding:5px 7px;width:max-content;max-width:calc(100% - 24px)}
.b-quick{background:#e7eefb;border-bottom:1px solid #cbd9f2;padding-block:28px}.quick-grid{display:grid;grid-template-columns:minmax(180px,.7fr) 1.55fr;gap:12px 28px;align-items:center}.quick-grid h2{font-size:clamp(1.15rem,2vw,1.85rem)}.quick-grid .over{margin-bottom:5px}.quick-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.quick-links a{display:flex;gap:5px;align-items:center;justify-content:center;min-height:50px;border:1px solid #b8c8e8;background:#fff;font-size:.79rem;font-weight:800;padding:6px;white-space:nowrap}.quick-links .icon{width:19px;height:19px;color:#234dca}.quick-links a:hover,.quick-links a[aria-current=true]{background:#173db7;color:#fff}.quick-links a:hover .icon,.quick-links a[aria-current=true] .icon{color:#fff}
.quick-answer{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-left:4px solid #2150d8;padding:12px 14px;font-size:.87rem}.quick-answer p{margin:0;color:var(--muted)}.quick-answer a{flex:none}
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:28px 0}.b-service{min-height:245px;display:flex;align-items:flex-start;flex-direction:column;padding:clamp(16px,2.2vw,34px);background:#fff;border:1px solid #d9e2f1;transition:box-shadow .2s,border-color .2s,transform .2s;scroll-margin-top:20px}.b-service:hover,.b-service.selected,.b-service:target{border-color:#4671e8;box-shadow:0 8px 20px #24499320;transform:translateY(-2px)}.b-service:nth-child(1){grid-column:span 2;color:#fff;background:#122753;border-color:#122753}.b-service:nth-child(1) .question,.b-service:nth-child(1) p,.b-service:nth-child(1) .svc-top{color:#e2ebff}.b-service:nth-child(5){background:#eaf0fd}.b-service h3{font-size:clamp(1.1rem,2vw,1.65rem);margin:12px 0 5px}.b-service p{font-size:.87rem;margin:0 0 .65em;color:var(--muted)}.svc-top{display:flex;gap:12px;align-items:center;justify-content:space-between;width:100%;color:#234bb7;font:700 .69rem var(--mono);letter-spacing:.06em}.svc-link{font-size:.78rem;font-weight:750;display:flex;gap:8px;align-items:center;min-height:44px;border-bottom:1px solid currentColor;margin-top:auto}.svc-link:hover{text-decoration:underline}
.b-process{background:#10213e;color:#fff}.b-process .over{color:#a9c1ff}.process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #6b83aa;border-bottom:1px solid #6b83aa;margin:28px 0}.process article{padding:22px 18px;border-right:1px solid #6b83aa}.process article:first-child{padding-left:0}.process article:last-child{border:0}.process span{font:700 1.1rem var(--mono);color:#b7cbff}.process h3{margin:.5em 0}.process p{margin:0;color:#e1eafd;font-size:.9rem}.b-process .text-link:hover{color:#b7cbff}
.b-info{background:#edf2fc}.info-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:clamp(16px,3vw,44px);align-items:start}.info-grid aside{background:#fff;border-top:3px solid #305cde;padding:20px;margin-top:25px}.info-grid aside h3{margin:10px 0}.info-grid aside p{font-size:.87rem}.info-grid aside a{display:flex;width:max-content;max-width:100%}.b .act-image{background:#e6edf9}.b .access{background:#edf2fc}.b .contact{background:#10213e;color:#fff}.b .contact .over{color:#b7cbff}.b .contact-grid p{color:#e1eaff}.b .contact-phone{background:#eaf1ff;color:#10213e}.b .contact-way:hover,.b .contact-phone:hover{background:#d5e2ff;color:#10213e}.b .footer{background:#0c172d}.b .foot-main p,.b .foot-tail{color:#dce5f5}
.gallery-intro{padding-top:25px;padding-bottom:clamp(44px,6vw,88px)}.gallery-intro>.text-link{margin-bottom:25px}.gallery-intro h1{font-size:clamp(2.25rem,6vw,6.3rem);letter-spacing:-.07em;line-height:1.05}.gallery-intro h1 span{color:#a5482e}.gallery-intro p{margin:1em 0 0;color:var(--muted)}.gallery-intro p.credit{margin:.65em 0 0}.gallery-jump{display:flex;gap:8px;margin-top:20px}.gallery-jump a{min-width:115px}
.fv-group{padding-bottom:clamp(45px,7vw,106px)}.fv-group-title{display:grid;grid-template-columns:1fr auto;align-items:end;gap:5px 15px;padding-top:18px;padding-bottom:20px;border-top:2px solid var(--ink)}.fv-group-title>span{grid-column:1/-1;color:#51594d}.fv-group-title h2{font-size:clamp(1.5rem,4vw,3.6rem)}
.fv-card{padding:clamp(13px,3vw,42px);background:#fff;border:1px solid var(--line);margin-bottom:17px;box-shadow:var(--shadow)}.fv-card header{display:flex;gap:12px;align-items:start;margin:0 0 16px}.fv-id{flex:none;padding:5px 8px;background:#253e32;color:#fff}.fv-group#group-b .fv-id{background:#153da9}.fv-card h3{font-size:clamp(1rem,2.5vw,1.9rem);letter-spacing:.025em}.fv-card p{font-size:.86rem;margin:.4em 0 0;color:var(--muted)}
.fv-pair{display:grid;grid-template-columns:minmax(0,3.7fr) minmax(0,1fr);align-items:start;gap:clamp(10px,2.3vw,35px)}.fv-item a{display:block;position:relative;overflow:hidden;background:#e6e7e1;border:1px solid var(--line)}.fv-item img{width:100%;height:auto;transition:scale .2s}.fv-item a:hover img{scale:1.025}.fv-item figcaption{display:flex;justify-content:space-between;gap:6px;margin-top:6px;font-weight:700}.zoom-icon{position:absolute;right:6px;bottom:6px;display:grid;place-content:center;min-width:35px;min-height:35px;background:#222923;color:#fff}
#lightbox{border:1px solid #687068;background:#171c18;color:#fff;padding:0;width:min(1110px,96vw);max-width:96vw;max-height:94dvh;overflow:hidden}#lightbox::backdrop{background:#0a100dee}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;padding:8px 13px;gap:10px}.lightbox-top strong{font:700 .8rem var(--mono)}.lightbox-top button,.lightbox-bottom button{padding:0 12px;flex:none}.lightbox-top button:hover,.lightbox-bottom button:hover{background:#fff;color:#171c18}.lightbox-stage{display:grid;place-items:center;padding:0 10px;touch-action:pan-y}.lightbox-stage img{object-fit:contain;width:auto;max-width:100%;max-height:calc(91dvh - 136px)}.lightbox-bottom{justify-content:center}.lightbox-bottom output{min-width:80px;text-align:center;font:700 .85rem var(--mono)}body.modal-open{overflow:hidden}
@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes hero-type-in{from{transform:translateY(8px)}to{transform:none}}@keyframes hero-in{from{scale:1.015}to{scale:1}}
.seen{animation:enter .48s both}.bento .seen:nth-child(3n+2){animation-delay:55ms}.bento .seen:nth-child(3n){animation-delay:95ms}
@media(max-width:960px){
 .header-inner{min-height:63px}.site-header nav{gap:12px}.nav-link{font-size:.77rem}.brand strong{font-size:1rem}.brand small{font-size:.51rem}
 .b-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr)}.b-hero h1{font-size:clamp(2.25rem,5.2vw,4.2rem)}.quick-grid{grid-template-columns:1fr;gap:13px}.quick-answer{grid-column:1}.b-hero-copy{min-height:410px}
 .news-list a{grid-template-columns:6rem 4.9rem 1fr auto;gap:9px}.info-grid .news-list a{grid-template-columns:5.7rem 1fr auto}.info-grid .news-tag{display:none}
}
@media(max-width:780px){
 .site-header:has(.menu[aria-expanded=false]) nav{display:none}.site-header nav{display:flex;position:absolute;top:100%;inset-inline:0;align-items:stretch;flex-direction:column;background:var(--paper);gap:0;padding:7px var(--g) 16px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.site-header nav .nav-link{border-bottom:1px solid var(--line);font-size:.94rem}.site-header nav .nav-cta{margin-top:10px}.menu{display:block}.no-js .menu{display:none}.no-js .site-header nav{display:flex!important;position:static;box-shadow:none}
 .b-hero .b-grid{grid-template-columns:1fr;padding-inline:0}.b-hero-copy{padding:30px var(--g);min-height:0}.b-hero h1{font-size:clamp(2.5rem,7.6vw,4.65rem)}.b-hero-photo{height:clamp(190px,49vw,355px);border-left:0;border-top:3px solid #4d7aff}.b-index{margin-bottom:24px}
 .contact-grid,.access-grid{grid-template-columns:1fr}.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.b-service:nth-child(1){grid-column:span 1}.activity-rail{gap:9px}.activity-text{padding:12px}.info-grid{grid-template-columns:1fr}.info-grid aside{margin:0}.info-grid .news-tag{display:block}.info-grid .news-list a{grid-template-columns:6rem 4.9rem 1fr auto}
}
@media(max-width:640px){
 h2{font-size:clamp(1.85rem,8vw,3.1rem)}
 .proposal-intro{padding-top:18px}.proposal-meta,.compare-label{font-size:.62rem;letter-spacing:.055em}.proposal-title h1{font-size:clamp(1.88rem,8.6vw,3.45rem);letter-spacing:.015em}.proposal-title h1 span{font-size:clamp(.83rem,4.5vw,1.6rem);letter-spacing:.105em}.proposal-title>p:last-child br{display:none}
 .compare-grid{grid-template-columns:1fr;gap:15px}.mini{font-size:.56rem}.mini-copy b{font-size:clamp(1rem,4.7vw,1.65rem)}.next-proposal{align-items:flex-start;flex-direction:column}.card-copy h2{font-size:clamp(1.2rem,5.6vw,1.85rem)}.footer{padding-top:42px}
 .a-hero{min-height:560px}.a-hero-inner{gap:14px;padding-top:18px;padding-bottom:37px}.a-hero-photo img{object-position:58% center}.a-hero-photo::after{background:linear-gradient(90deg,#0b2118df,#122a2080 72%,#132d2033),linear-gradient(0deg,#0a231ad0,transparent 38%)}.a-hero h1{font-size:clamp(2.65rem,12vw,4.9rem)}.a-hero p{font-size:.87rem}.hero-credit{right:var(--g);left:var(--g);bottom:6px;max-width:none;text-align:left;width:fit-content}.scroll-mark{min-height:44px}
 .a-intro-grid,.a-about-grid{grid-template-columns:1fr;gap:25px}.a-about-grid figure{order:2}.intro-photo{transform:none}
 .support-grid{grid-template-columns:1fr;margin-top:22px}.support-grid article:nth-last-child(2){border-bottom:0}
 .a .activity-rail{grid-auto-columns:minmax(200px,79%)}.act-image{min-height:190px}.activity-rail{grid-template-columns:1fr}.activity-text h3{font-size:1.12rem}.b .activity-card a{display:grid;grid-template-columns:minmax(95px,38%) 1fr;align-items:center}.b .act-image{min-height:145px;padding:6px}.b .act-image img{height:130px}
 .news-list a,.info-grid .news-list a{grid-template-columns:1fr auto;gap:3px 10px;padding-block:12px}.news-list strong{grid-column:1;grid-row:2}.news-list .news-tag{grid-column:2;grid-row:1;text-align:right}.news-list a>span:last-child{grid-column:2;grid-row:2;text-align:right}
 .quick-links{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-answer{align-items:flex-start;flex-direction:column;gap:2px}.bento{gap:7px}.b-service{min-height:210px;padding:13px}.svc-top span{font-size:.58rem}.process{grid-template-columns:1fr}.process article,.process article:first-child{padding:15px 0;border-right:0;border-bottom:1px solid #6b83aa}.process article:last-child{border-bottom:0}
 .fv-group-title{grid-template-columns:1fr;gap:6px}.fv-group-title .text-link{justify-self:start}.fv-pair{grid-template-columns:1fr}.fv-item.sp{width:min(76%,320px);margin:auto}.fv-card header{gap:8px}.fv-item figcaption{font-size:.7rem}
}
@media(max-width:399px){.b-hero h1{font-size:clamp(1.8rem,9.25vw,2.5rem)}.b-hero h1>span{white-space:nowrap}}
@media(max-width:365px){.proposal-bar{font-size:.64rem}.proposal-bar .wrap{gap:4px}.proposal-bar .wrap>a,.proposal-bar .wrap>span{white-space:nowrap}.proposal-bar b{margin-left:.25em}.b-index{font-size:.62rem;column-gap:9px}.bento{grid-template-columns:1fr}.b-service{min-height:0}.bento .svc-link{margin-top:5px}.contact-ways{grid-template-columns:1fr}.a-hero h1{font-size:2.48rem}.hero-loc{font-size:.7rem}.brand small{letter-spacing:.04em}.next-proposal .button{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.a-hero-photo{transform:none!important}}
.actual-preview{width:100%;aspect-ratio:1100/675;object-fit:cover;transition:transform .25s;border:1px solid var(--line)}.preview-link:hover .actual-preview{transform:scale(1.025)}.b-hero h1{letter-spacing:-.045em}.bento:has(.b-service:target) .b-service:target{outline:2px solid #2150d8;outline-offset:2px}

@media(max-width:640px){
 .compare-credit,.hero-credit,.b-hero-photo figcaption,.photo figcaption{font-size:.75rem;line-height:1.6}
 .hero-credit,.b-hero-photo figcaption{padding:5px 8px}
 .a-hero-inner{padding-bottom:56px}
 .hero-credit a,.b-hero-photo figcaption a,.compare-credit a,.photo figcaption a{display:inline-block;margin-block:1px}
 .b-service{padding:15px;min-width:0}
 .b-service h3{font-size:1.0625rem;letter-spacing:-.025em}.b-service .question{text-wrap:balance}
 .b-service p{line-height:1.75}
}
@media(max-width:379px){
 .bento{grid-template-columns:1fr;gap:10px}
 .b-service{min-height:0;padding:17px}
 .b-service .svc-link{margin-top:4px}
}

.svc-term{display:inline-block;white-space:nowrap}

/* Photo details are collected on the credits page. */
@media(max-width:640px){
 .a-hero-inner{padding-bottom:30px}
}
.credits-intro{padding-top:30px;padding-bottom:52px}
.credits-intro>.text-link{margin-bottom:30px}
.credits-intro h1{font-size:clamp(2.1rem,5.2vw,4.5rem);letter-spacing:-.05em;margin-bottom:20px}
.credits-intro p{max-width:48em;color:var(--muted)}
.credits-photos{padding-bottom:70px}
.credit-entry{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.4fr);gap:30px;padding:30px 0;border-top:1px solid var(--line)}
.credit-entry h2{font-size:clamp(1.3rem,2.7vw,2rem);margin-bottom:12px;letter-spacing:-.02em}
.credit-entry p,.credit-entry dl{font-size:.9rem}
.credit-entry a{overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.credit-thumb img{width:100%;aspect-ratio:3/2;object-fit:cover}
.credit-entry dl{display:grid;grid-template-columns:8em minmax(0,1fr);gap:8px 18px;margin:16px 0}
.credit-entry dt{font-weight:750}
.credit-entry dd{overflow-wrap:anywhere}
.credits-notes{padding-bottom:80px}
.credits-notes h2{font-size:clamp(1.4rem,3vw,2rem);margin:32px 0 16px}
.credits-notes a{text-decoration:underline;text-underline-offset:3px}
.credits-notes ul{padding-left:1.3em}
.credits-notes li{padding:8px 0}
@media(max-width:640px){
 .credit-entry{grid-template-columns:1fr;gap:18px;padding:24px 0}
 .credit-entry dl{grid-template-columns:1fr;gap:4px}
 .credit-entry dd{margin-bottom:10px}
}

/* Revision 2.2: individually generated scene illustrations. */
.scene-art{min-width:0;overflow:hidden}
.scene-art img{width:100%;height:auto;display:block}
.support-scene-heading,.startup-layout,.activity-scene-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,86px);align-items:center}
.support-scene-heading h2,.startup-layout h2{font-size:clamp(2.15rem,4.3vw,4.25rem)}
.a .support-scene,.a .activity-scene{border:1px solid #c3b69e}
.support-scene-heading{margin-bottom:38px}
.startup-note{background:#faf7f0;padding-block:clamp(60px,7vw,108px);border-bottom:1px solid #ded5c4}
.startup-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.startup-layout>div>p{max-width:30em;color:var(--muted);line-height:1.95}
.startup-scene{border-left:1px solid #a99270;border-top:1px solid #a99270;padding:9px 0 0 9px}
.activity-scene-heading{margin:26px 0 38px}
.activity-scene-heading .rail-controls{margin-top:25px;margin-bottom:0}
.contact-scene{max-width:490px;margin-top:30px}
.contact-grid>div:first-child{min-width:0}
.service-scene{width:100%;margin:7px 0 16px;background:#eaf0fa}
.b-service.has-scene{padding-top:25px}
.b-service:first-child h3{font-size:clamp(1.65rem,3vw,2.8rem);max-width:20ch}
.b-service:first-child .question{font-size:clamp(.94rem,1.4vw,1.25rem);max-width:32em}
.b-service:first-child>p:not(.question){max-width:36em}
.information-scene{margin-bottom:20px}
.process-scene-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(26px,5vw,74px);margin:32px 0 24px}
.process-scene-layout .process{grid-template-columns:1fr;margin:0;border-top:0}
.process-scene-layout .process article,.process-scene-layout .process article:first-child{padding:18px 0;border-right:0;border-bottom:1px solid #6b83aa}
.process-scene-layout .process article:last-child{border-bottom:0}
.process-scene-layout .process h3{margin:.35em 0}
.illustration-credits span{display:block;font-size:.9em;color:var(--muted);margin-top:3px}
@media(max-width:1100px){
 .b-service.has-scene{padding-top:18px}
}
@media(max-width:780px){
 .support-scene-heading,.startup-layout,.activity-scene-heading,.process-scene-layout{grid-template-columns:1fr;gap:26px}
 .support-scene-heading h2,.startup-layout h2{font-size:clamp(2rem,8vw,3.8rem)}
 .support-scene-heading{margin-bottom:28px}
 .startup-layout>div{order:-1}
 .activity-scene-heading{margin-top:0;margin-bottom:30px}
 .activity-scene-heading .rail-controls{margin-top:16px}
 .contact-scene{max-width:560px;margin-top:24px}
 .b-service:first-child h3{font-size:clamp(1.3rem,3.4vw,1.75rem)}
 .b-service:first-child .question{font-size:.94rem}
 .b-service.has-scene{padding-top:15px}
 .service-scene{margin:5px 0 12px}
 .process-scene-layout{margin-top:26px;gap:20px}
 .process-scene-layout .process article,.process-scene-layout .process article:first-child{padding:16px 0}
}

/* Revision 2.3: readable narrow-screen support cards. */
@media(max-width:480px){.bento{grid-template-columns:1fr;gap:14px}.b-service,.b-service.has-scene{padding:22px;min-height:0}.b-service:first-child h3,.b-service h3{font-size:1.35rem;line-height:1.35;margin-top:12px}.b-service:first-child .question,.b-service .question{font-size:.9375rem;line-height:1.7}.b-service p{font-size:.9375rem;line-height:1.8}.service-scene{width:100%;margin:9px 0 15px}.svc-top{font-size:.7rem}.svc-top span{font-size:.65rem}.svc-link{width:100%;min-height:48px;margin-top:9px;font-size:.875rem;line-height:1.5}}
@media(max-width:640px){.contact-ways{grid-template-columns:1fr;gap:12px}.contact-phone,.contact-way{width:100%;min-height:62px;padding:14px 16px;font-size:.9375rem;line-height:1.6;gap:12px}.contact-ways a>span:not([aria-hidden]){min-width:0}.contact-ways small{font-size:.78rem;line-height:1.6}.contact-phone strong{font-size:clamp(1.35rem,6vw,1.8rem)}.contact-way>span:not([aria-hidden]){overflow-wrap:anywhere}.contact-ways a>span[aria-hidden]{flex:none}}
