:root{--paper:#ffffff;--card:#f0efed;--ink:#111;--muted:#8a8780;--pw:min(58vw,calc((100svh - 410px) / 1.4),360px);--ph:calc(var(--pw) * 1.4);--radius:calc(var(--pw) * 0.045);--ease:cubic-bezier(0.22,0.8,0.24,1)}*{box-sizing:border-box;margin:0}html{touch-action:pan-y}body,html{height:100%;background:var(--paper);color:var(--ink);overflow:hidden;overscroll-behavior:none}body{font-family:Arial,Helvetica,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.page{height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;padding:30px 16px calc(10px + env(safe-area-inset-bottom));gap:1.8vh;overflow:hidden}.header{text-align:center}.header h1{font-weight:700;font-size:clamp(44px,min(12.5vw,9vh),88px);line-height:1;letter-spacing:.01em;white-space:nowrap}.stage{position:relative;flex:1 1;width:100%;min-height:calc(var(--ph) + 40px)}.pcard{all:unset;position:absolute;left:50%;top:50%;width:var(--pw);height:var(--ph);margin:calc(var(--ph) / -2) 0 0 calc(var(--pw) / -2);cursor:pointer;border-radius:var(--radius);transform:translate(var(--dx),var(--dy)) rotate(var(--rot));touch-action:manipulation}.pcard:disabled{cursor:default}.pcard:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.pcard.is-pre{opacity:0}.pcard.is-intro{animation-delay:.3s}.pcard.is-thrown{animation:throw .4s cubic-bezier(.2,.8,.25,1) both;z-index:2}.pface{position:absolute;inset:0;display:block;border-radius:var(--radius);overflow:hidden;background:var(--card);box-shadow:0 2px 5px rgba(0,0,0,.12),0 14px 30px rgba(0,0,0,.14)}.pface img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pcard.is-under .pface{box-shadow:0 0 0 1px rgba(0,0,0,.06)}.pcard.is-under .pface:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 4px var(--card);border-radius:inherit}.pcard.is-thrown.k-spin{animation-name:throw-spin;animation-duration:.75s;animation-timing-function:cubic-bezier(.1,.7,.2,1)}@keyframes throw-spin{0%{transform:translate(var(--sx),calc(var(--ph) * .95 + 120px)) rotate(var(--sr)) scale(1.1)}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}}.pcard.is-thrown.k-off{animation-name:throw-off;animation-duration:.65s;animation-timing-function:cubic-bezier(.1,.75,.2,1)}@keyframes throw-off{0%{transform:translate(var(--sx),calc(var(--ph) * .95 + 120px)) rotate(var(--sr)) scale(1.1)}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}}@keyframes throw{0%{transform:translate(var(--sx),calc(var(--ph) * .95 + 120px)) rotate(var(--sr)) scale(1.1)}72%{transform:translate(var(--dx),var(--dy)) rotate(calc(var(--rot) * 1.1)) scale(1.012)}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}}.pcard.settle-0{animation:settle-0 .34s cubic-bezier(.15,.8,.25,1) both}.pcard.settle-1{animation:settle-1 .34s cubic-bezier(.15,.8,.25,1) both}@keyframes settle-0{0%{transform:translate(var(--fdx),var(--fdy)) rotate(var(--frot))}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}@keyframes settle-1{0%{transform:translate(var(--fdx),var(--fdy)) rotate(var(--frot))}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}.stage.is-knock{animation:push .4s cubic-bezier(.2,.8,.3,1)}@keyframes push{0%,to{transform:none}45%{transform:scale(.975,.985) translateY(1px)}}.pcard.is-leaving{animation:leave .34s cubic-bezier(.5,0,.9,.5) both;pointer-events:none;z-index:3}@keyframes leave{to{transform:translate(var(--sx),calc(var(--ph) * .95 + 160px)) rotate(var(--sr)) scale(1.05)}}.draw-row{display:flex;align-items:center;gap:6px}.back{all:unset;font-weight:700;font-size:13px;font-family:Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:lowercase;cursor:pointer;padding:8px 14px;min-height:40px;display:inline-flex;align-items:center;touch-action:manipulation;opacity:.75;transition:opacity .2s}.back:hover:not(:disabled){opacity:1}.back:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.back:disabled{cursor:default;opacity:.3}.draw-wrap{display:flex;flex-direction:column;align-items:center;padding-top:0}.draw{all:unset;font-weight:700;font-size:17px;font-family:Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:lowercase;cursor:pointer;padding:8px 22px;min-height:40px;display:inline-flex;align-items:center;touch-action:manipulation;transition:transform .2s var(--ease),opacity .2s}.draw:hover:not(:disabled){transform:translateY(-2px)}.draw:active:not(:disabled){transform:translateY(1px)}.draw:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.draw:disabled{cursor:default;opacity:.45}.tidy{all:unset;margin-top:0;font-size:12px;color:#77746d;cursor:pointer;padding:5px 12px;min-height:28px;display:inline-flex;align-items:center;touch-action:manipulation}.tidy:hover:not(:disabled){color:var(--ink)}.tidy:focus-visible{outline:2px solid var(--ink);border-radius:4px}.tidy:disabled{cursor:default;opacity:.5}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition-duration:.01ms!important}}.preview{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0);transition:background .35s var(--ease);cursor:zoom-out}.preview.is-open{background:rgba(255,255,255,.94)}.preview-card{width:min(88vw,calc(88svh * 5 / 7),620px);aspect-ratio:5/7;border-radius:14px;overflow:hidden;background:var(--card);box-shadow:0 4px 8px rgba(0,0,0,.1),0 30px 60px rgba(0,0,0,.18);transition:transform .38s var(--ease)}.preview-card img{width:100%;height:100%;object-fit:cover;display:block}.preview-close{all:unset;position:absolute;top:20px;right:20px;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;cursor:pointer;padding:12px;opacity:0;transition:opacity .3s}.preview.is-open .preview-close{opacity:1}.preview-close:focus-visible{outline:2px solid var(--ink);border-radius:4px}.info-face{container-type:size;display:block;width:100%;height:100%;text-align:left}.info-inner{justify-content:space-between;width:100%;height:100%;padding:8cqw}.info-inner,.info-links,.info-top{display:flex;flex-direction:column}.info-name{font-weight:700;font-size:8.4cqw;line-height:1.1}.info-role{margin-top:1.6cqw;font-size:4.8cqw;color:var(--muted);letter-spacing:.04em}.info-blurb{margin-top:5cqw;font-size:4.8cqw;line-height:1.4}.info-links{gap:3cqw;border-top:1px solid var(--ink);padding-top:4cqw}.info-link{display:flex;flex-direction:column;font-size:4.8cqw;line-height:1.25}.info-label{font-size:3.5cqw;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.info-link a{color:inherit;text-decoration:underline;text-underline-offset:3px}.site-name{all:unset;cursor:pointer}.site-name:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}.preview.has-pages{gap:12px}.preview.has-pages .preview-card{width:min(calc(100vw - 150px),calc(88svh * 5 / 7),620px)}.preview-card{position:relative}.pages{display:flex;transition:transform .5s var(--ease)}.page-slide,.pages{width:100%;height:100%}.page-slide{flex:0 0 100%}.about-portrait{width:100%;height:100%;object-fit:cover;display:block}.preview-arrow{all:unset;flex:none;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;border-radius:50%;opacity:0;transition:opacity .3s,transform .2s var(--ease);touch-action:manipulation}.preview.is-open .preview-arrow{opacity:1}.preview.is-open .preview-arrow:disabled{opacity:.18;cursor:default}.preview-arrow:hover:not(:disabled){transform:scale(1.12)}.preview-arrow:focus-visible{outline:2px solid var(--ink)}.tours{gap:4cqw;justify-content:flex-start}.tour-list{display:flex;flex-direction:column;gap:3.6cqw;margin-top:1cqw;border-top:1px solid var(--ink);padding-top:5cqw}.tour-row{display:flex;gap:4cqw;font-size:4.4cqw;line-height:1.3}.tour-year{flex:0 0 11cqw;font-weight:700}.info-footer,.tour-trips{display:flex;flex-direction:column}.info-footer{margin-top:4cqw;font-size:3.5cqw;line-height:1.35;color:var(--muted)}.service-list{list-style:none;display:flex;flex-direction:column;gap:4cqw;margin-top:1cqw;border-top:1px solid var(--ink);padding:5cqw 0 0}.service-list li{gap:4cqw;line-height:1.3}.about-text,.service-list li{display:flex;font-size:4.6cqw}.about-text{flex-direction:column;gap:2.5cqw;margin-top:1cqw;border-top:1px solid var(--ink);padding-top:5cqw;line-height:1.4}.about-statement{margin-top:4cqw;font-weight:700}.tags{font-weight:700;font-size:clamp(11px,min(3.4vw,2.1vh),19px);line-height:1.3;text-align:center;white-space:nowrap}.project-title{font-size:10cqw}.project-detail{margin-top:2.5cqw;font-size:5.4cqw;line-height:1.35;color:#77746d}.contact{display:flex;flex-wrap:wrap;justify-content:center;gap:0 20px;padding-top:0}.contact a{font-weight:700;font-size:12px;color:var(--ink);text-decoration:none;padding:5px 4px}.contact a:focus-visible{outline:2px solid var(--ink);border-radius:3px}.sound{all:unset;position:fixed;top:calc(env(safe-area-inset-top) + 10px);right:10px;z-index:5;width:40px;height:40px;display:grid;place-items:center;cursor:pointer;color:#77746d;border-radius:50%}.sound:hover{color:var(--ink)}.sound:focus-visible{outline:2px solid var(--ink)}.project-link{margin-top:6cqw;font-weight:700;font-size:5.4cqw;color:var(--ink);text-decoration:underline;text-underline-offset:1cqw}.preview.has-side{gap:clamp(32px,4.5vw,72px)}.preview-side{align-self:center;max-width:min(28vw,380px);text-align:left;opacity:0;transform:translateX(-14px);transition:opacity .4s var(--ease) .2s,transform .4s var(--ease) .2s}.preview.is-open .preview-side{opacity:1;transform:none}.preview-side h2{font-size:clamp(28px,3vw,44px);line-height:1.1;letter-spacing:-.01em;margin-bottom:14px}.preview-side p{font-size:17px;line-height:1.4;color:#77746d}.preview-side a{display:inline-block;margin-top:22px;font-weight:700;font-size:17px;color:var(--ink);text-decoration:underline;text-underline-offset:4px}.project-dims{margin-top:1.2cqw}.preview-side p.dims{margin-top:4px}.remembers-face{display:block;width:100%;height:100%;background:#7a1414 url(/art/barmemo-card.jpg) 50%/cover no-repeat}