/* Case layouts preserve the typography and motion of the retained portfolio. */
:root{--blue:#0866ff;--accent:#0866ff;--paper:#f5f3ee;--max:1460px}
html{scroll-padding-top:24px}
body{background:var(--accent)}
.portfolio-hero{background:var(--accent);color:var(--paper);overflow:clip;padding-bottom:74px}
.portfolio-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:32px;padding-bottom:45px}
.portfolio-name{font-size:27px;font-weight:900;line-height:1.05;text-decoration:none}
.portfolio-top>p{font-size:15px;line-height:1.4;margin-left:auto;margin-right:60px}
.top-contact{font-size:17px;text-decoration:none;border-bottom:1px solid currentColor;padding-block:8px;min-height:44px}
.hero-stage{display:grid;grid-template-columns:1.18fr 1fr;align-items:center;gap:3%;position:relative}
.hero-title{position:relative;z-index:1;padding-block:24px 50px}
.hero-title h1{font-size:clamp(48px,6.6vw,98px);font-weight:900;line-height:1.02;letter-spacing:0}
.hero-sticker{display:inline-block;background:var(--paper);color:var(--accent);padding:18px 27px;font-size:23px;font-weight:700;line-height:1.15;text-decoration:none;transform:rotate(-6deg);margin:36px 0 0 20%;}
.creator-portrait{margin:0;position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.creator-photo{width:100%;height:420px;object-fit:cover;object-position:85% center;border-radius:47% 53% 38% 62% / 48% 35% 65% 52%;transform:rotate(3deg)}

.hero-bottom-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:end;padding-top:40px}
.hero-bottom-copy>p{font-size:clamp(20px,1.75vw,25px);line-height:1.5;max-width:780px}
.hero-route{display:flex;flex-wrap:wrap;gap:12px 25px;align-items:center;justify-content:flex-end;font-size:15px;max-width:390px;justify-self:end}
.hero-route a{padding-block:9px;min-height:44px;text-decoration:none;border-bottom:1px solid #ffffff60}
.hero-route a:hover{border-color:var(--paper)}
:is(.game-case,.voting-case,.tradein-case,.offline-case,.portfolio-contact) .project-label{font-size:14px;line-height:1.5}
.project-role{font-size:15px;line-height:1.65;max-width:840px}
.game-case{background:#c6e5df;color:#112826;padding-block:90px 74px;overflow:clip}
.game-heading{position:relative}
.game-heading h2{font-size:clamp(62px,10.2vw,146px);font-weight:900;line-height:1.05;margin-top:28px;max-width:850px}
.game-intro{max-width:610px;margin:45px 4% 52px auto;font-size:21px;line-height:1.6}
.game-sticker{position:absolute;right:var(--gap);top:85px;background:#fff594;color:#142929;font-size:27px;line-height:1.2;font-weight:700;padding:25px 30px;transform:rotate(8deg)}
.game-art{margin:0}
.game-art img{width:100%;height:auto}
.game-art figcaption{font-size:13px;line-height:1.6;padding:20px var(--gap);max-width:1100px}
.game-details{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;padding-top:45px;padding-bottom:35px}
.game-details h3{font-size:clamp(26px,3vw,42px);font-weight:500;line-height:1.15;margin-bottom:22px}
.game-details p{font-size:19px;line-height:1.7;max-width:590px}
.voting-case{background:#ffb4c2;color:#1e2030;padding-block:110px 95px;overflow:clip}
.voting-spread{display:grid;grid-template-columns:1.25fr 1fr;gap:13%;align-items:start}
.voting-copy h2{font-size:clamp(40px,5.2vw,74px);font-weight:900;line-height:1.05;margin-top:30px}
.voting-question{font-size:clamp(25px,3.1vw,43px);font-weight:500;line-height:1.2;margin-block:45px 35px!important}
.voting-copy>p:not(.project-label):not(.voting-question):not(.project-role){font-size:20px;line-height:1.7;max-width:680px}
.voting-copy .project-role{margin-top:35px;font-size:15px}
.voting-phone{margin:45px 0 0;position:relative;justify-self:center;max-width:340px;transform:rotate(3deg)}
.voting-demo{background:#f4f7f7;border:9px solid #fcfbf6;border-radius:34px;box-shadow:13px 15px 0 #000089;padding:24px 18px;color:#182527}
.demo-label{color:#000089;font-size:12px;font-weight:700;margin-bottom:12px}
.voting-demo h3{font-size:20px;line-height:1.2;font-weight:500;margin-bottom:22px}
.venue-choice{display:block;position:relative;width:100%;background:none;border:0;text-align:left;padding:0 0 13px;cursor:pointer;color:inherit;transition:opacity .2s}
.venue-choice img{display:block;width:100%;height:145px;object-fit:cover;border-radius:35% 18% 26% 22% / 28% 31% 25% 37%;margin-bottom:12px}
.venue-name{display:block;font-size:23px;line-height:1.2;font-weight:700}
.venue-address{display:block;font-size:12px;margin-top:5px;padding-right:55px}
.venue-pick{position:absolute;right:0;top:116px;border-radius:30px;background:#000089;color:#fff;padding:10px 14px;font-size:12px}
.venue-choice:disabled{cursor:default}
.venue-choice:disabled[aria-pressed=false]{opacity:.45}
.venue-choice[aria-pressed=true] .venue-pick{background:#24644e}
.venue-choice[aria-pressed=true] .venue-pick::after{content:' ✓'}
.venue-choice:focus-visible,.venue-skip:focus-visible,.venue-reset:focus-visible{outline:3px solid #000089;outline-offset:5px;border-radius:10px}
.venue-or{display:block;text-align:center;font-size:13px;color:#778486;padding:3px 0 14px}
.venue-skip,.venue-reset{display:block;width:100%;border:0;border-radius:30px;padding:14px 12px;min-height:44px;font-size:13px;cursor:pointer}
.venue-skip{background:#e2e8ea;color:#182527;margin-top:12px}
.venue-skip:disabled{opacity:.45;cursor:default}
.venue-reset{background:#000089;color:#fff;margin-top:15px}
.venue-reset[hidden]{display:none}
.venue-result{font-size:13px;line-height:1.6;margin-top:18px;min-height:62px}
.voting-phone figcaption{font-size:13px;margin:25px 0 0 15px;line-height:1.6}
.phone-note{display:block;position:absolute;left:-50px;bottom:140px;background:#000089;color:var(--paper);padding:18px 23px;font-size:20px;line-height:1.3;transform:rotate(-8deg)}
.tradein-case h2{font-size:clamp(67px,9.4vw,135px);font-weight:900;line-height:1.05;margin-top:25px}
.tradein-case .letter-intro{max-width:760px;font-size:22px;line-height:1.6}
.tradein-main-copy .sheet-caption{margin-top:25px;font-size:12px;margin-bottom:22px}
.tradein-main-copy h3{font-size:clamp(34px,4.1vw,58px);margin-bottom:18px}
.tradein-main-copy h3~h3{margin-top:25px}
.tradein-main-copy .gallery-divider{font-size:54px;margin:24px 0;line-height:1}
.histore-role{font-size:17px;line-height:1.7;max-width:770px;margin-left:7%;color:var(--paper)}
.asya-case{background:var(--paper)}
.offline-case{background:#ff8f35;color:#251b16;overflow:clip}
.offline-spread{display:grid;grid-template-columns:1.1fr 1fr;gap:9%;align-items:start}
.offline-spread h2{font-size:clamp(50px,7.3vw,104px);font-weight:900;margin-top:30px;line-height:1.06}
.offline-copy{font-size:21px;line-height:1.6;max-width:580px;padding-bottom:10px}
.offline-copy a{display:inline-block;font-size:15px;margin-top:25px;padding-block:8px;min-height:44px}
.offline-copy .project-role{margin-top:25px}
.shater-mini{display:grid;grid-template-columns:1fr 1.1fr;gap:9%;border-top:1px solid #251b1660;margin-top:70px;padding-top:65px}
.shater-mini h3{font-size:clamp(32px,4vw,56px);line-height:1.1;font-weight:700;margin:25px 0 30px}
.shater-mini-copy>p:not(.project-label):not(.project-role){font-size:19px;line-height:1.7}
.shater-mini-copy .project-role{margin-top:25px;font-size:14px}
.shater-mini-copy>a{display:inline-block;font-size:14px;min-height:44px;padding-block:10px;margin-top:15px}
.shater-images{position:relative;display:grid;grid-template-columns:1fr 1.3fr;gap:14px;align-items:center}
.shater-images figure{margin:0;transform:rotate(-4deg)}
.shater-images figure:last-child{transform:rotate(4deg);margin-top:80px}
.shater-images img{width:100%;height:auto;display:block;border:9px solid var(--paper);box-shadow:4px 6px 0 #251b1640}
.shater-images figcaption{font-size:12px;line-height:1.5;margin-top:15px}
.shater-arrow{position:absolute;left:36%;top:9%;font-size:75px}
.portfolio-contact{display:block;background:var(--accent);color:var(--paper);overflow:clip}
.portfolio-contact>.wrap{width:100%;min-width:0}
.portfolio-contact h2{font-size:clamp(65px,11.4vw,164px);font-weight:900;line-height:1.06;margin-top:35px}
.contact-bottom{display:flex;align-items:center;justify-content:space-between;gap:45px;margin-top:65px}
.contact-bottom>p{font-size:19px;line-height:1.6}
.contact-sticker{display:inline-block;background:var(--paper);color:var(--accent);font-size:clamp(21px,2.2vw,32px);font-weight:700;padding:22px 30px;text-decoration:none;transform:rotate(-4deg);transition:transform .2s}
.contact-sticker:hover{transform:rotate(0)}
.contact-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:70px;font-size:15px}
.contact-links a{min-height:44px;padding-block:9px;text-decoration:none}
.portfolio-note{font-size:12px;margin-top:25px;color:#e3e2ff}
@media(min-width:1800px){.creator-photo{height:500px}}
@media(max-width:1100px){.portfolio-top>p{margin-right:15px}.creator-photo{height:370px}.hero-sticker{font-size:20px;margin-left:10%}.hero-bottom-copy{grid-template-columns:1.4fr 1fr;gap:5%}.game-sticker{top:115px;font-size:22px}.voting-spread{gap:8%}.voting-phone{max-width:290px}.phone-note{font-size:17px;left:-35px}}
@media(max-width:767px){
 .portfolio-hero{padding-bottom:45px}.portfolio-top{padding-top:24px;padding-bottom:28px;gap:15px}.portfolio-name{font-size:21px}.portfolio-top>p{font-size:11px;margin:0}.top-contact{font-size:13px;white-space:nowrap}
 .hero-stage{display:flex;flex-direction:column;align-items:stretch;gap:0}.hero-title{padding-block:25px 20px}.hero-title h1{font-size:clamp(38px,12.2vw,78px);line-height:1.06}.hero-sticker{font-size:20px;padding:15px 22px;margin:28px 0 20px 24%;gap:24px}.creator-portrait{max-width:480px;width:100%;align-self:center;margin:15px 0 0}.creator-photo{height:auto;aspect-ratio:1.16;transform:rotate(2deg)}
 .hero-bottom-copy{display:block;padding-top:34px}.hero-bottom-copy>p{font-size:19px;line-height:1.6}.hero-route{justify-content:start;gap:8px 21px;font-size:13px;margin-top:25px;max-width:none}
 .game-case{padding-block:60px 50px}.game-heading h2{font-size:clamp(62px,16vw,105px);margin-top:22px}.game-intro{margin:34px 0 32px;font-size:18px;line-height:1.7}.game-sticker{position:relative;top:auto;right:auto;display:inline-block;font-size:21px;margin:0 0 45px 40%;padding:16px 23px;transform:rotate(5deg)}.game-art img{width:100%;aspect-ratio:1.9;object-fit:cover;object-position:56% 50%}.game-art figcaption{font-size:12px;padding-block:16px}.game-details{display:block;padding-top:30px;padding-bottom:25px}.game-details>div+div{margin-top:35px}.game-details h3{font-size:27px;margin-bottom:16px}.game-details p{font-size:17px;line-height:1.7}.project-role{font-size:13px}
 .voting-case{padding-block:65px 65px}.voting-spread{display:flex;flex-direction:column;gap:15px}.voting-copy h2{font-size:clamp(30px,10vw,68px);margin-top:22px}.voting-question{font-size:28px;margin-block:32px 26px!important}.voting-copy>p:not(.project-label):not(.voting-question):not(.project-role){font-size:18px}.voting-copy .project-role{font-size:13px;margin-top:30px}.voting-phone{max-width:290px;width:calc(100% - 30px);align-self:center;transform:rotate(1deg);margin-top:30px}.phone-note{position:relative;left:auto;bottom:auto;display:inline-block;margin:20px 0 0 25px;transform:rotate(-4deg)}
 .tradein-case h2{font-size:clamp(60px,16vw,95px);line-height:1.08}.tradein-case .letter-intro{font-size:18px;line-height:1.7}.tradein-main-copy h3{font-size:33px}.tradein-main-copy .gallery-divider{font-size:45px}.histore-role{margin-left:0;font-size:15px;line-height:1.7}
 .offline-spread{display:block}.offline-spread h2{font-size:clamp(43px,12.3vw,78px)}.offline-copy{font-size:18px;margin-top:38px;line-height:1.7}.offline-copy .project-role{font-size:13px}
 .shater-mini{display:block;margin-top:45px;padding-top:40px}.shater-mini h3{font-size:34px}.shater-mini-copy>p:not(.project-label):not(.project-role){font-size:17px}.shater-images{margin-top:35px;gap:18px;grid-template-columns:1fr 1.25fr}.shater-images figure:last-child{margin-top:60px}.shater-images img{border-width:6px}.shater-arrow{font-size:52px;top:-10px}.shater-images figcaption{font-size:11px}
 .portfolio-contact h2{font-size:clamp(39px,12vw,82px);line-height:1.08;margin-top:28px}.contact-bottom{display:block;margin-top:40px}.contact-bottom>p{font-size:17px}.contact-sticker{font-size:21px;padding:19px 24px;margin:30px 0 0 5%;max-width:95%}.contact-links{gap:10px 25px;margin-top:45px;font-size:13px}.portfolio-note{font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-sticker,.contact-sticker,.creator-photo,.venue-choice{transition:none}.triangle-reveal-photo img{transform:none}}
@media print{body,.portfolio-hero,.game-case,.voting-case,.tradein-case,.offline-case,.portfolio-contact{background:white!important;color:black!important}.portfolio-top,.hero-route,.hero-sticker,.contact-sticker,.contact-links,.creator-portrait,.phone-note,.game-sticker{display:none}.hero-stage,.hero-bottom-copy,.game-details,.voting-spread,.offline-spread,.contact-bottom{display:block}.portfolio-hero,.game-case,.voting-case,.offline-case,.portfolio-contact{padding-block:24px}.hero-title h1,.portfolio-contact h2{font-size:34pt}.hero-bottom-copy>p,.game-intro,.game-details p,.voting-copy>p,.offline-copy{font-size:11pt}.game-heading h2,.voting-copy h2,.offline-spread h2,.tradein-case h2{font-size:30pt}.voting-phone{max-width:200px;transform:none;margin:20px 0}.voting-phone img{box-shadow:none}.game-intro{margin:20px 0}.hero-bottom-copy{padding-top:0}.histore-role{color:black}.portfolio-note{color:black}}

.unused-mascot{position:absolute;width:clamp(110px,12vw,175px);height:auto;left:-6%;top:-15px;z-index:2;transform:rotate(-12deg);pointer-events:none}
.peach-photo{margin:55px 0 0;max-width:460px;justify-self:center;transform:rotate(3deg)}
.peach-photo img{display:block;width:100%;height:auto;border-radius:5px}
.peach-photo figcaption{font-size:13px;margin-top:20px;text-align:right}
.offline-copy .peach-queue{font-size:clamp(25px,2.5vw,36px);line-height:1.25;font-weight:700;margin-block:32px}
@media(max-width:767px){.unused-mascot{width:115px;left:0;top:-22px}.peach-photo{max-width:380px;width:calc(100% - 24px);margin:35px auto 0;transform:rotate(2deg)}.offline-copy .peach-queue{font-size:26px}.peach-photo figcaption{font-size:12px}}
@media print{.unused-mascot{display:none}.peach-photo{max-width:240px;transform:none}.peach-photo figcaption{color:black}}

.media-presence{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;border-top:1px solid #24242040;padding-top:45px;margin-top:60px}
.media-award h3{font-size:clamp(52px,7vw,92px);font-weight:900;line-height:1.1;margin:14px 0 20px}.media-award h3 a{text-decoration:none}.media-award>p:last-child{font-size:17px;line-height:1.6;max-width:430px}
.media-interviews>p{font-size:19px;line-height:1.5;margin-bottom:15px}.media-interviews>a{display:block;font-size:19px;line-height:1.5;padding:17px 0;border-bottom:1px solid #24242040;text-decoration:none}.media-interviews>a:hover{text-decoration:underline}.media-interviews span{display:block;font-size:13px;color:#666;margin-top:4px}
.histore-economics{margin:60px 0 0 7%;padding-top:35px;border-top:1px solid #ffffff70;color:var(--paper);max-width:850px}.histore-economics h3{font-size:clamp(28px,3.5vw,46px);font-weight:700;line-height:1.2;margin-bottom:25px}.histore-economics p{font-size:19px;line-height:1.7}.histore-economics p+p{margin-top:20px}
@media(max-width:767px){.media-presence{display:block;margin-top:45px;padding-top:30px}.media-interviews{margin-top:35px}.media-interviews>a{font-size:17px}.histore-economics{margin:40px 0 0;padding-top:30px}.histore-economics p{font-size:17px}}
@media print{.histore-economics{color:black}.media-presence{display:block}.media-award h3{font-size:24pt}}

/* The main route stays open; supporting work is readable on demand. */
.hero-links{max-width:475px;justify-self:end}
.hero-availability{font-size:16px;line-height:1.65;max-width:430px;margin-bottom:20px}
.hero-links .hero-route{justify-content:flex-start;max-width:none}
.shater-history{margin-top:45px}
.shater-history>summary{font-size:21px;font-weight:500;list-style:none;cursor:pointer;border-top:1px solid #33201555;padding:24px 0;display:flex;justify-content:space-between;gap:20px;min-height:48px}
.shater-history>summary::-webkit-details-marker,.work-reading>summary::-webkit-details-marker{display:none}
.shater-history[open]>summary span,.work-reading[open] .reading-plus{transform:rotate(45deg)}
.shater-history .shater-mini{padding-top:30px;margin-top:0}
.more-works{background:var(--paper);color:var(--ink)}
.more-works h2{font-size:clamp(39px,5.9vw,83px);line-height:1.1;font-weight:700;margin:28px 0 50px;letter-spacing:0}
.work-reading{border-top:1px solid #26282140}
.work-reading:last-child{border-bottom:1px solid #26282140}
.work-reading>summary{display:grid;grid-template-columns:1fr 1fr 36px;align-items:center;gap:20px;list-style:none;cursor:pointer;padding:27px 0;min-height:75px}
.work-reading>summary>span:first-child{font-size:clamp(24px,2.4vw,34px);line-height:1.2;font-weight:500}
.reading-kind{font-size:15px;line-height:1.5;max-width:285px}
.reading-plus{font-size:32px;line-height:1;text-align:right;transition:transform .2s}
.work-reading :is(.tradein-case,.asya-case){padding-block:45px 55px}
.work-reading .wrap{width:100%;margin:0;padding-inline:0}
.work-reading .tradein-case h2{font-size:clamp(50px,7vw,98px)}
.compact-tradein{padding:40px 0 65px;max-width:750px;font-size:21px;line-height:1.7}
.compact-tradein p{margin-top:30px}
.compact-tradein blockquote{font-size:clamp(35px,4.8vw,60px);line-height:1.2;font-weight:700;margin:45px 0 0;position:relative}
summary:focus-visible{outline:3px solid #0866ff;outline-offset:6px}
@media(max-width:767px){.hero-links{justify-self:start;max-width:100%}.hero-availability{font-size:15px;margin-bottom:18px;max-width:100%}.portfolio-top>p{margin-right:0;font-size:13px}.hero-links .hero-route{justify-content:flex-start}.shater-history>summary{font-size:18px}.work-reading>summary{grid-template-columns:1fr 28px;gap:12px;padding:24px 0}.reading-kind{grid-column:1;grid-row:2;max-width:none;font-size:13px}.reading-plus{grid-column:2;grid-row:1/3}.more-works h2{margin-bottom:35px}.compact-tradein{font-size:18px}.work-reading .wrap{padding-inline:0}.work-reading .quiz-margin-note{right:8px}}
@media(prefers-reduced-motion:reduce){.reading-plus{transition:none}}
@media print{.portfolio-hero,.portfolio-contact{background:#fff!important;color:#111!important}.hero-sticker{border:1px solid #111}.work-reading,.shater-history{break-inside:avoid}.work-reading>summary{padding-block:16px}.more-works{background:#fff}}

.author-media{background:var(--paper);color:var(--ink)}
.author-media h2{font-size:clamp(46px,6.8vw,96px);font-weight:900;line-height:1.08;margin:28px 0 48px}
.author-spread{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:start}
.author-story{font-size:20px;line-height:1.7}
.author-story p+p{margin-top:24px}
.author-position{font-size:clamp(27px,3.3vw,46px);line-height:1.3;position:relative;margin:0 0 32px}
.author-links{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:30px;font-size:15px}
.author-links a{min-height:44px;padding-block:10px}
.author-citation{font-size:13px;line-height:1.6}
.author-extract{margin-top:32px;border-top:1px solid #26282140;padding-top:24px;font-size:17px;line-height:1.75}
.author-extract>summary{font-size:20px;line-height:1.4;list-style:none;cursor:pointer;min-height:44px;display:flex;justify-content:space-between;gap:20px}
.author-extract>summary::-webkit-details-marker{display:none}
.author-extract[open]>summary span{transform:rotate(45deg)}
.author-extract p{margin-top:22px}
.author-extract a{display:inline-block;min-height:44px;padding-block:10px;margin-top:15px}
.author-context{border-top:1px solid #26282140;padding-top:28px;margin-top:48px;max-width:850px;font-size:17px;line-height:1.7}
.author-context h3{font-size:26px;line-height:1.3;margin-bottom:20px}
.in-progress{background:var(--paper);color:var(--ink);border-top:1px solid #26282140}
.in-progress h2{font-size:clamp(31px,4vw,56px);line-height:1.2;margin-bottom:40px}
.in-progress .game-case,.in-progress .voting-case{padding:40px 32px 48px}
.in-progress .game-heading h2{font-size:clamp(40px,6vw,80px)}
.in-progress .game-sticker{font-size:22px;top:55px}
.in-progress .game-intro{margin:32px 0;font-size:19px}
.in-progress .voting-spread{gap:8%}
@media(max-width:767px){.author-spread{display:block}.author-media h2{margin-bottom:35px}.author-story{font-size:18px}.author-sidebar{margin-top:40px}.author-position{font-size:30px}.author-context{font-size:16px;margin-top:35px}.author-extract{font-size:16px}.author-extract>summary{font-size:18px}.in-progress .game-case,.in-progress .voting-case{padding:30px 18px 40px}.in-progress .game-sticker{position:static;margin:10px 0 28px;display:inline-block}.in-progress .game-heading h2{font-size:48px}}
@media print{.author-media,.in-progress{background:white!important;color:black!important}.author-spread{display:block}.author-media h2{font-size:30pt}.author-story{font-size:11pt}}
