:root{color-scheme:light;--bg:#FCF9F2;--card:#F8F3EA;--hover:#F1EBD8;--border:#E6DDCE;--ink:#241E19;--secondary:#746B60;--muted:#9F9689;--accent:#B07D3B;--accent-light:#F5EBE0;--selected:#EDDCC4;--highlight:#F6EEDF;--same:#F2E2CB;--pill:#EBDCC8;--number:#2B4C7E;--error:#C93B3B}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:var(--number);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible{outline:3px solid var(--number);outline-offset:5px;border-radius:2px}h1,h2,h3,.wordmark{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.15}h1{font-size:clamp(2.75rem,6vw,4.75rem);letter-spacing:-.045em;margin:.55rem 0 1.4rem}h2{font-size:1.9rem;letter-spacing:-.02em;margin:0 0 1.15rem}p{margin:0 0 1.15rem}p:last-child{margin-bottom:0}.wrap{max-width:1140px;margin:auto;padding:0 32px}.site-header{border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:98px}.wordmark{display:inline-flex;align-items:center;gap:13px;font-size:1.55rem;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;grid-template-columns:repeat(3,4px);gap:4px;padding:10px;border:1px solid var(--accent);border-radius:7px}.brand-mark i{width:4px;height:4px;background:var(--accent);border-radius:1px}.header-nav{display:flex;gap:28px;font-size:.875rem}.header-nav a{color:var(--secondary);text-decoration:none}.header-nav a:hover{color:var(--ink);text-decoration:underline}.eyebrow{display:block;font-size:.69rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--secondary)}.policy-hero{padding:64px 0 44px;max-width:830px}.policy-hero h1{font-size:clamp(2.5rem,6vw,4.4rem);margin-bottom:15px}.subtitle{font-size:1.1rem;color:var(--secondary)}.meta{display:flex;gap:14px 24px;flex-wrap:wrap;margin-top:25px;color:var(--secondary);font-size:.84rem}.meta span{border-left:2px solid var(--accent);padding-left:12px}.policy-layout{display:grid;grid-template-columns:220px minmax(0,720px);gap:68px;padding-bottom:96px}.contents{align-self:start;position:sticky;top:32px;padding-top:9px}.contents summary{cursor:pointer;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--secondary);margin-bottom:15px}.contents ul{list-style:none;padding:0;margin:0;border-left:1px solid var(--border)}.contents li{margin:0}.contents a{display:block;padding:8px 0 8px 18px;color:var(--secondary);font-size:.82rem;line-height:1.5;text-decoration:none}.contents a:hover{color:var(--ink);background:var(--card)}.policy-body{font-size:1rem;overflow-wrap:anywhere}.policy-body section{padding:36px 0;border-top:1px solid var(--border)}.policy-body section:first-child{padding-top:30px}.policy-body code{font-family:ui-monospace,monospace;font-size:.88em;background:var(--card);padding:.15em .3em;border-radius:3px}.site-footer{border-top:1px solid var(--border);padding:30px 0 36px;font-size:.78rem;color:var(--secondary)}.footer-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.footer-name{font-family:Georgia,serif;font-size:1.1rem;color:var(--ink)}.hosting{max-width:710px;font-size:.71rem;line-height:1.65;margin-top:18px}.skip{position:absolute;top:-100px;left:20px;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:5}.skip:focus{top:10px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center;padding:92px 0 94px}.hero h1{font-size:clamp(3.3rem,7vw,5.7rem)}.hero-description{font-size:1.1rem;max-width:430px;color:var(--secondary)}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--bg);font-size:.86rem;font-weight:600;padding:13px 22px;border-radius:6px;text-decoration:none;border:1px solid var(--ink)}.button.secondary{color:var(--ink);background:transparent;border-color:var(--border)}.button:hover{background:var(--hover);color:var(--ink)}.puzzle-card{padding:25px;background:var(--card);border:1px solid var(--border);border-radius:15px;transform:rotate(2deg);box-shadow:0 18px 45px -28px #746B6044}.puzzle-label{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--secondary);padding-bottom:17px}.pill{background:var(--pill);border-radius:12px;padding:3px 9px;font-size:.58rem}.board{display:grid;grid-template-columns:repeat(9,1fr);aspect-ratio:1;border:2px solid var(--ink);background:var(--bg)}.cell{display:flex;align-items:center;justify-content:center;min-width:0;aspect-ratio:1;font-family:Georgia,serif;font-size:clamp(.9rem,1.8vw,1.5rem);border-right:1px solid var(--border);border-bottom:1px solid var(--border);line-height:1}.cell:nth-child(3n){border-right:1.5px solid var(--ink)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:1.5px solid var(--ink)}.cell:nth-child(n+73){border-bottom:0}.cell.focus{background:var(--selected);color:var(--number)}.cell.lit{background:var(--highlight)}.puzzle-foot{display:flex;justify-content:space-between;color:var(--secondary);font-size:.69rem;margin-top:16px;letter-spacing:.03em}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid var(--border);padding:35px 0 60px}.details-grid h2{font-size:1.35rem;margin:10px 0}.details-grid p{font-size:.9rem;color:var(--secondary)}.detail-index{font:italic .85rem Georgia,serif;color:var(--accent)}
@media(max-width:850px){.policy-layout{grid-template-columns:1fr;gap:26px}.contents{position:static;padding:17px 20px;background:var(--card);border:1px solid var(--border);border-radius:8px}.contents ul{display:grid;grid-template-columns:1fr 1fr}.policy-hero{padding-top:42px}.hero{gap:36px;padding:65px 0}.puzzle-card{padding:18px}.details-grid{gap:24px}.hero h1{font-size:3.6rem}.cell{font-size:1.05rem}}
@media(max-width:620px){.wrap{padding:0 22px}.header-inner{min-height:80px}.wordmark{font-size:1.25rem;gap:9px}.brand-mark{padding:7px}.header-nav{gap:18px;font-size:.79rem}.policy-hero{padding:36px 0 30px}.policy-layout{padding-bottom:42px}.policy-body section{padding:28px 0}.policy-body{font-size:.95rem}.policy-body h2{font-size:1.65rem}.contents ul{grid-template-columns:1fr}.meta{gap:10px 18px}.footer-row{display:block}.footer-row>div+div{margin-top:10px}.hero{grid-template-columns:1fr;padding:47px 0 44px;gap:40px}.hero h1{font-size:3.7rem;max-width:350px}.hero-description{font-size:1rem}.puzzle-card{width:min(100%,340px);margin:auto;transform:rotate(1deg)}.cell{font-size:1.1rem}.details-grid{grid-template-columns:1fr;gap:26px;padding:28px 0 40px}.details-grid h2{margin-top:5px}.details-grid p{max-width:430px}.actions{gap:10px}.button{padding:12px 18px}.site-footer{padding-top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.contents,.header-nav,.skip,.hosting{display:none}.wrap{max-width:none;padding:0}.policy-layout{display:block}.policy-hero{padding:0 0 20px}.policy-body section{break-inside:avoid;padding:18px 0}body{background:white;font-size:10pt}.policy-body{font-size:10pt}h1{font-size:28pt!important}h2{font-size:16pt!important}.site-footer{margin-top:20px}}

/* Studio homepage: each game's details remain scoped to its own section. */
.studio-hero{padding:78px 0 76px;max-width:850px}.studio-hero h1{font-size:clamp(3.4rem,7.5vw,6rem);max-width:820px}.studio-hero .hero-description{max-width:580px}.game-feature{border-top:1px solid var(--border);padding:68px 0 76px}.game-feature h2{font-size:clamp(2.9rem,6vw,4.8rem);margin:.5rem 0 1.1rem;letter-spacing:-.04em}.platform-label{display:inline-block;background:var(--pill);border-radius:20px;padding:3px 12px;font-size:.73rem;color:var(--ink);margin-bottom:19px}.game-note{font-size:.86rem;line-height:1.75;color:var(--secondary);max-width:430px;margin-top:17px}.studio-page .details-grid a{overflow-wrap:anywhere}
@media(max-width:850px){.studio-hero{padding:58px 0 60px}.game-feature{padding:52px 0 60px}}
@media(max-width:620px){.studio-page .header-inner{flex-wrap:wrap;gap:12px;padding-top:20px;padding-bottom:18px}.studio-page .header-nav{width:100%;justify-content:space-between;gap:18px}.studio-hero{padding:42px 0 44px}.studio-hero h1{font-size:clamp(2.75rem,11.2vw,4rem)}.game-feature{padding:39px 0 47px;gap:38px}.game-feature h2{font-size:3.3rem}.studio-page .hero-description{max-width:100%}.studio-page .puzzle-card{max-width:calc(100% - 6px)}}


/* Portfolio sections */
.portfolio-section{border-top:1px solid var(--border);padding:62px 0 72px}
.portfolio-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}
.portfolio-heading h2{font-size:clamp(2.2rem,4.5vw,3.65rem);letter-spacing:-.035em;margin:.45rem 0 0}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.project-grid.compact .project-card{min-height:260px}
.project-card,.wide-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:28px}
.project-card{display:flex;flex-direction:column;min-height:330px}
.project-card h3,.wide-card h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:2rem;line-height:1.08;letter-spacing:-.025em;margin:.55rem 0 1rem}
.project-card p,.wide-card p{color:var(--secondary);font-size:.94rem}
.project-type{display:block;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.card-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:24px}
.card-links a{display:inline-flex;border:1px solid var(--border);border-radius:6px;padding:9px 13px;text-decoration:none;color:var(--ink);font-size:.82rem;font-weight:700}
.card-links a:hover{background:var(--hover);border-color:var(--accent)}
.wide-card{display:grid;grid-template-columns:.75fr 1.25fr;gap:44px;align-items:start}
.wide-card h3{font-size:2.4rem;margin-bottom:0}
.wide-card p{margin:0}
@media(max-width:760px){.portfolio-heading{display:block}.project-grid,.wide-card{grid-template-columns:1fr}.project-card{min-height:280px}.wide-card{gap:18px}.portfolio-section{padding:46px 0 54px}.studio-page .header-nav{flex-wrap:wrap;justify-content:flex-start}}

/* Compact screenshot previews for released projects. */
.project-preview{margin:0 0 24px}
.preview-images{display:flex;align-items:center;justify-content:center;gap:16px;height:260px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--highlight)}
.preview-images a{display:block;min-width:0;max-width:100%;height:100%;border-radius:5px}
.preview-images img{display:block;width:100%;height:100%;object-fit:contain;border-radius:5px}
.preview-phones a{aspect-ratio:9/16;border:1px solid var(--border);box-shadow:0 5px 14px #241E1910;overflow:hidden}
.preview-landscape{padding:0;background:#191713;overflow:hidden}
.preview-landscape a{width:100%;display:flex;align-items:center}
.project-preview figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px;font-size:.7rem;color:var(--secondary)}
.project-preview figcaption span{color:var(--accent)}
@media(max-width:420px){.preview-images{height:220px;gap:10px;padding:10px}.preview-landscape{padding:0}.project-preview figcaption{font-size:.65rem}}
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-card{min-width:0}
@media(max-width:760px){.project-grid{grid-template-columns:minmax(0,1fr)}}

.storm-card{grid-template-columns:1fr 1fr;align-items:center}
.storm-card .project-preview{margin:0}
.storm-card p{margin-top:20px}
.project-card .preview-credit{font-size:.7rem;line-height:1.6;margin:0 0 20px}
@media(max-width:760px){.storm-card{grid-template-columns:minmax(0,1fr)}}
