/* 日本語ゼロの外国人｜実験ログ  — vanilla CSS, no web fonts */
:root{
  /* brand palette (playbook point 7): cream #fff7ef, pink #ff8fa3, mint #5ccfa8.
     Pink and mint are fills/accents only; text uses the text-safe partners below (WCAG AA 4.5:1 on cream and every tint used). */
  --washi:#fff7ef; --paper:#fffdfa; --tint:#fcefe9; --ink:#2b2226; --ink2:#554a4e; --ink3:#6f6266;
  --pink:#ff8fa3; --pink-l:#ffd3db; --mint:#5ccfa8; --mint-l:#d4f3e8; --mint-d:#1f7a5c;
  --shu:#c8325a; --shu-d:#a3284a;          /* hanko ink = beni pink (text-safe); --shu-d for text on --pink-l */
  --ai:#1f7a5c;                            /* 予定 / countdown / focus = mint-ink (text-safe) */
  --line:#f1dcd4; --grid:rgba(255,143,163,.2);
  --c0:#2b2226; --c1:#1f7a5c; --c2:#c8325a; --c3:#2b2226; --c4:#1f7a5c; --c5:#c8325a; --c6:#2b2226; --c7:#1f7a5c;
  --gothic:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Noto Sans CJK JP","Yu Gothic","YuGothic",Meiryo,system-ui,sans-serif;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","Noto Serif CJK JP","BIZ UDPMincho",serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Noto Sans Mono CJK JP",monospace;
  --pad:clamp(16px,4.5vw,40px);
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .18 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grunge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.5 1.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:12px}
body{margin:0;font-family:var(--gothic);color:var(--ink);background:var(--washi);background-image:var(--noise);line-height:1.75;font-size:16px;font-feature-settings:"palt" 1;overflow-x:hidden;text-rendering:optimizeLegibility}
a{color:inherit}
h1,h2,h3,h4,p,dl,dd,ol,ul,figure,blockquote{margin:0;padding:0}
ol,ul{list-style:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--pad);position:relative}
.mono{font-family:var(--mono);font-feature-settings:normal;letter-spacing:0}
.ph{display:inline-block}
:focus-visible{outline:3px solid var(--ai);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:8px;top:-60px;z-index:50;background:var(--ink);color:#fff;padding:8px 14px;border-radius:6px;text-decoration:none}
.skip:focus{top:8px}

/* progress bar: scroll-driven, CSS only */
.progress{position:fixed;inset:0 0 auto 0;height:3px;background:var(--pink);transform-origin:0 50%;transform:scaleX(0);z-index:40}
@supports (animation-timeline:scroll()){
  .progress{animation:grow linear both;animation-timeline:scroll(root)}
}
@keyframes grow{to{transform:scaleX(1)}}

/* ticker */
.ticker{display:flex;overflow:hidden;background:var(--ink);color:var(--washi);font-size:12.5px;font-weight:700;letter-spacing:.06em;white-space:nowrap;border-bottom:3px solid var(--pink)}
.ticker-track{display:flex;flex:none;gap:0;animation:marquee 38s linear infinite;padding:7px 0}
.ticker-track li{padding:0 1.1em}
.ticker-track li::after{content:"◆";color:var(--pink);margin-left:2.2em}
@keyframes marquee{to{transform:translateX(-100%)}}

/* masthead */
.masthead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding-top:14px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo{width:42px;height:42px;flex:none;display:grid;place-items:center;border:3px solid var(--shu);border-radius:50%;color:var(--shu);font:900 22px/1 var(--mincho);background:var(--paper);box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 3px var(--shu);-webkit-mask:var(--grunge);mask:var(--grunge)}
.brand-txt{display:flex;flex-direction:column;line-height:1.25}
.brand-txt strong{font-size:15px;font-weight:900;letter-spacing:.04em}
.brand-txt small{font-size:11px;color:var(--ink3)}
.nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.nav a{flex:none;font-size:13px;font-weight:700;text-decoration:none;padding:6px 12px;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper);transition:background .15s,color .15s}
.nav a:hover{background:var(--ink);color:var(--paper)}

/* hero */
.hero{position:relative;padding:18px 0 56px;overflow:hidden}
.genko{position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/34px 34px,
    linear-gradient(var(--grid) 1px,transparent 1px) 0 0/34px 34px;
  -webkit-mask:linear-gradient(180deg,#000 40%,transparent 96%);mask:linear-gradient(180deg,#000 40%,transparent 96%)}
.hero-grid{display:grid;grid-template-columns:1fr auto;grid-template-areas:"copy tate" "cta cta" "doc doc";gap:18px 10px;align-items:start}
.hero-copy{grid-area:copy;position:relative;z-index:2;padding-top:10px}
.tate{grid-area:tate;writing-mode:vertical-rl;font:900 clamp(40px,12vw,112px)/1 var(--mincho);letter-spacing:.02em;color:var(--ink);margin-right:-4px;position:relative;z-index:1;text-shadow:3px 3px 0 var(--paper)}
.tate b{color:var(--shu);font-weight:900}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;letter-spacing:.18em;background:var(--ink);color:var(--paper);padding:5px 12px 5px 10px;margin-bottom:16px;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 50%,100% 100%,0 100%)}
.kicker-dot{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 2px var(--paper)}
.h1{font-size:clamp(29px,8.2vw,68px);font-weight:900;line-height:1.28;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:anywhere}
.hl{font-style:normal;color:var(--shu-d);background:linear-gradient(transparent 60%,var(--pink-l) 60%,var(--pink-l) 94%,transparent 94%);padding:0 .06em}
.lead{margin-top:18px;font-size:clamp(16px,4.3vw,20px);font-weight:700;line-height:1.7;max-width:34em}
.sub{margin-top:10px;font-size:14.5px;color:var(--ink2);max-width:36em}
.ctas{grid-area:cta;display:flex;flex-wrap:wrap;gap:12px 10px;margin-top:4px;position:relative;z-index:2}
.btn-main span{margin-left:-2px}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:clamp(13.5px,3.7vw,15.5px);text-decoration:none;padding:12px clamp(12px,3.6vw,20px);white-space:nowrap;border:2.5px solid var(--ink);border-radius:6px;transition:transform .12s,box-shadow .12s}
.btn-main{background:var(--ink);color:var(--paper);box-shadow:5px 5px 0 var(--pink)}
.btn-sub{background:var(--paper);box-shadow:5px 5px 0 var(--mint)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--shu)}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--shu)}

.hero-doc{grid-area:doc;position:relative;margin-top:8px;padding:14px 4px 0}
.ringi{position:relative;background:var(--paper);background-image:var(--noise);border:1.5px solid var(--ink);padding:18px 16px 14px;transform:rotate(-1.4deg);box-shadow:0 1px 0 var(--line),0 18px 30px -14px rgba(60,40,10,.35),10px 10px 0 -1px var(--paper),10px 10px 0 0 var(--ink)}
.ringi::before{content:"";position:absolute;top:-13px;left:50%;width:120px;height:26px;transform:translateX(-50%) rotate(2deg);background:rgba(92,207,168,.6);border-left:2px dotted rgba(255,255,255,.6);border-right:2px dotted rgba(255,255,255,.6);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ringi-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px double var(--ink);padding-bottom:8px;margin-bottom:10px}
.ringi-title{font:900 22px/1 var(--mincho);letter-spacing:.9em;margin-right:-.9em}
.ringi-no{font:700 12px var(--mono);color:var(--ink3)}
.ringi-rows{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);border-bottom:0}
.ringi-rows div{grid-column:1/-1;display:grid;grid-template-columns:4.2em 1fr;border-bottom:1px solid var(--ink)}
.ringi-rows .half{grid-column:auto}
.ringi-rows .half+.half{border-left:1px solid var(--ink)}
.ringi-rows dt{font-size:11px;font-weight:700;background:var(--pink-l);border-right:1px solid var(--ink);padding:6px 6px;display:grid;place-items:center;text-align:center;line-height:1.3}
.ringi-rows dd{font:700 13.5px/1.5 var(--mincho);padding:6px 8px;align-self:center}
.ringi-rows dd.mono{font-family:var(--mono);font-size:12.5px}
.ringi-label{font-size:11px;font-weight:900;letter-spacing:.3em;margin:12px 0 6px}
.cells{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.cell{display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:84px}
.cell-role{width:100%;text-align:center;font-size:10.5px;font-weight:700;border-bottom:1px solid var(--ink);padding:2px 0;background:var(--pink-l);white-space:nowrap}
.cell-boss{grid-column:1/-1;flex-direction:row;min-height:64px}
.cell-boss .cell-role{width:4.2em;align-self:stretch;display:grid;place-items:center;border-bottom:0;border-right:1px solid var(--ink)}
.stamp{margin:auto;width:48px;height:48px;display:grid;place-items:center;border:2.6px solid var(--shu);border-radius:50%;color:var(--shu);font:900 18px/1 var(--mincho);transform:rotate(var(--r));-webkit-mask:var(--grunge);mask:var(--grunge);text-align:center;mix-blend-mode:multiply}
.stamp-2{font-size:13px;letter-spacing:-.02em;writing-mode:vertical-rl;line-height:1.05}
.stamp-rect{width:auto;height:auto;border-radius:4px;padding:6px 12px;font-size:22px;letter-spacing:.12em;border-width:3px;box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 3.5px var(--shu)}
.ringi-foot{font-size:12px;color:var(--ink2);margin-top:9px;font-weight:700}
.sticker{position:absolute;right:-6px;top:-20px;z-index:3;width:112px;height:112px;background:var(--pink);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(12deg);line-height:1.05;filter:drop-shadow(0 0 0 #fff) drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(3px 4px 0 rgba(43,34,38,.85))}
.sticker small{font-size:11px;font-weight:900}
.sticker b{font-size:33px;font-weight:900;color:var(--ink);letter-spacing:-.04em;margin:2px 0}

/* stamp press animation (JS adds .is-in) */
.js .ringi .stamp{opacity:0}
.js .ringi.is-in .stamp{animation:press .55s cubic-bezier(.2,1.5,.35,1) both;animation-delay:calc(.25s + var(--i) * .16s)}
@keyframes press{0%{opacity:0;transform:scale(2.3) rotate(calc(var(--r) - 18deg))}55%{opacity:.95}100%{opacity:1;transform:scale(1) rotate(var(--r))}}
.js .sticker{animation:pop .6s 1.9s cubic-bezier(.2,1.6,.4,1) both}
@keyframes pop{from{transform:rotate(-30deg) scale(0)}to{transform:rotate(12deg) scale(1)}}

/* parallax on the vertical title (scroll-driven, progressive) */
@supports (animation-timeline:view()){
  .tate{animation:drift linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
  @keyframes drift{to{transform:translateY(-70px)}}
}

/* sections */
.sec{position:relative;padding:64px 0 40px}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:end;border-bottom:4px solid var(--ink);padding-bottom:10px;position:relative}
.sec-head::after{content:"";position:absolute;left:0;right:0;bottom:-10px;border-bottom:1.5px solid var(--ink)}
.sec-num{grid-row:1/3;writing-mode:vertical-rl;font:900 13px/1 var(--mincho);background:var(--shu);color:var(--paper);padding:10px 7px;letter-spacing:.2em;align-self:stretch;text-align:center}
.sec-title{font:900 clamp(34px,9vw,64px)/1.05 var(--gothic);letter-spacing:.02em;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px}
.sec-en{font:800 12px var(--mono);letter-spacing:.35em;color:var(--shu)}
.sec-meta{font-size:12.5px;font-weight:700;color:var(--ink2)}
.sec-tate{position:absolute;right:calc(var(--pad) - 6px);top:0;writing-mode:vertical-rl;font:900 12px/1 var(--mincho);letter-spacing:.5em;color:var(--ink3);display:none}
.sec-lead{margin-top:24px;font-weight:700;font-size:16px}

.memo{position:relative;margin:16px 0 22px;background:var(--mint-l);padding:12px 14px 12px 16px;font-size:13.5px;font-weight:700;max-width:640px;transform:rotate(-.6deg);box-shadow:0 10px 14px -12px rgba(0,0,0,.5)}
.memo-pin{position:absolute;top:-7px;left:18px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffc2cd,var(--pink) 60%,var(--shu));box-shadow:1px 2px 2px rgba(0,0,0,.3)}

/* office: ID cards */
.cards{display:grid;grid-template-columns:1fr;gap:18px}
.idcard{position:relative;background:var(--paper);border:1.5px solid var(--ink);border-radius:12px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column}
.idcard::before{content:"";position:absolute;top:7px;left:50%;width:34px;height:7px;transform:translateX(-50%);border-radius:5px;background:var(--washi);box-shadow:inset 0 1px 2px rgba(0,0,0,.35);z-index:2}
.id-band{display:flex;justify-content:space-between;align-items:center;background:var(--acc);color:var(--paper);font-size:11px;font-weight:900;letter-spacing:.2em;padding:20px 14px 6px}
.id-band .mono{letter-spacing:.05em}
.draft{position:absolute;top:44px;right:10px;font:900 11px var(--mono);letter-spacing:.15em;color:var(--shu);border:2px solid var(--shu);padding:1px 6px;transform:rotate(8deg);-webkit-mask:var(--grunge);mask:var(--grunge);background:var(--paper)}
.id-main{display:flex;gap:14px;align-items:center;padding:14px 14px 10px}
.avatar{flex:none;width:62px;height:62px;display:grid;place-items:center;border-radius:50%;border:2.5px solid var(--acc);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4.5px var(--acc);font:900 30px/1 var(--mincho);color:var(--acc);background:var(--paper)}
.id-name{font-size:19px;font-weight:900;line-height:1.3;padding-right:56px}
.id-title{font-size:12.5px;color:var(--ink2);font-weight:700;line-height:1.4;margin-top:2px}
.id-dl{padding:0 14px 14px;display:grid;gap:8px;flex:1}
.id-dl>div{display:grid;grid-template-columns:1fr;gap:4px;border-top:1px dashed var(--line);padding-top:8px}
.id-dl dt{font-size:11px;font-weight:900;color:var(--acc);letter-spacing:.1em}
.id-dl dd{font-size:14px;line-height:1.65}
.quote{position:relative;font:700 15px/1.6 var(--mincho);background:var(--tint);border-left:4px solid var(--acc);padding:8px 10px 8px 12px}
.quote p::before{content:"「";margin-left:-.5em}
.quote p::after{content:"」"}
.quote-ph{font-family:var(--gothic);font-size:13px;font-weight:700;color:var(--ink3);background:repeating-linear-gradient(-45deg,transparent 0 8px,rgba(0,0,0,.035) 8px 16px);border:2px dashed var(--ink3);border-left-width:4px}
.src{font-size:11px;color:var(--ink3);margin-top:5px;line-height:1.5}
.src span{font-weight:900}
.src code{font-family:var(--mono);background:var(--washi);padding:0 4px;border-radius:3px;color:var(--ink2)}

/* log: notebook */
.notebook{position:relative;margin-top:22px;background:var(--paper);border:1.5px solid var(--ink);border-radius:4px 12px 12px 4px;padding:18px 12px 18px 26px;
  background-image:repeating-linear-gradient(transparent 0 31px,rgba(31,122,92,.14) 31px 32px);background-position:0 12px;box-shadow:6px 6px 0 var(--ink)}
.notebook::before{content:"";position:absolute;top:0;bottom:0;left:18px;border-left:1.5px solid rgba(255,143,163,.7);box-shadow:3px 0 0 -1.5px rgba(255,143,163,.7)}
.notebook::after{content:"";position:absolute;top:10px;bottom:10px;left:-8px;width:12px;background:radial-gradient(circle,var(--washi) 3.5px,transparent 4px) 0 0/12px 26px repeat-y}
.day+.day{margin-top:18px}
.day-h{display:flex;align-items:baseline;gap:4px;font-size:26px;font-weight:900;line-height:1.2;padding-left:4px}
.day-h small{font-size:14px;font-weight:700}
.day-y{margin-left:auto;font-size:11px;color:var(--ink3);font-weight:700}
.entries{margin-top:6px;border-left:3px solid var(--ink);margin-left:8px}
.entry{position:relative;display:grid;grid-template-columns:1fr 40px;gap:0 8px;align-items:start;padding:8px 0 8px 14px}
.entry::before{content:"";position:absolute;left:-7.5px;top:17px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:3px solid var(--ink)}
.entry.plan::before{border-color:var(--ai);background:var(--washi)}
.entry .t{grid-column:1;font-size:11.5px;font-weight:800;color:var(--paper);background:var(--ink);justify-self:start;padding:0 6px;border-radius:3px;line-height:1.6;margin-bottom:2px}
.plan .t{background:var(--ai)}
.entry span.t{display:none}
.entry p{font-size:14.5px;line-height:1.7}
.mini-stamp{grid-column:2;grid-row:1/4;justify-self:end;width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--shu);color:var(--shu);border-radius:50%;font:900 14px/1 var(--mincho);transform:rotate(var(--r));-webkit-mask:var(--grunge);mask:var(--grunge)}
.plan .mini-stamp{border-color:var(--ai);color:var(--ai);font-size:10.5px;border-style:dashed}
.day-plan .entries{border-left-style:dashed;border-left-color:var(--ai)}
.day-plan .day-h{color:var(--ai)}
.cd{grid-column:1;font:800 13px var(--mono);color:var(--paper);background:var(--ai);display:inline-block;justify-self:start;padding:3px 9px;border-radius:4px;margin-top:6px}
.cd:empty{display:none}

/* reveal */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.js .reveal.is-in{opacity:1;transform:none}

/* stats: LED board */
.board{margin-top:22px;background:#15130f;border-radius:14px;padding:16px;border:3px solid var(--ink);box-shadow:inset 0 0 0 6px #2a2620,6px 6px 0 var(--pink);color:#fff}
.board-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.board-grid>div{background:#0b0a08;border-radius:8px;padding:12px 12px 10px;border:1px solid #3a342a;position:relative;overflow:hidden}
.board-grid .rev{grid-column:1/-1}
.board dt{font-size:12px;font-weight:700;color:#cfc6b4;letter-spacing:.06em}
.led{font:900 clamp(40px,12vw,76px)/1.05 var(--mono);color:var(--mint);text-shadow:0 0 6px rgba(92,207,168,.7),0 0 18px rgba(92,207,168,.3);margin-top:4px;letter-spacing:.02em}
.led.is-empty{font:900 clamp(26px,8vw,48px)/1.35 var(--gothic);letter-spacing:.04em;white-space:nowrap;opacity:.85}
.led small{font-family:var(--gothic);font-size:.42em;margin-left:.15em}
.rev .led{color:var(--pink);text-shadow:0 0 6px rgba(255,143,163,.8),0 0 20px rgba(255,143,163,.35)}
.board-grid>div::after{content:"";position:absolute;inset:0;background:radial-gradient(circle,transparent 1.2px,rgba(0,0,0,.42) 1.5px) 0 0/4px 4px;pointer-events:none}
.board-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;margin-top:12px;font-size:12px;color:#cfc6b4}
.ph-note{color:var(--pink);font-weight:700}

/* links */
.link-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
.lk a{display:flex;flex-direction:column;gap:4px;text-decoration:none;height:100%;padding:16px 18px;border:1.5px solid var(--ink);background:var(--paper);position:relative;transition:transform .15s,box-shadow .15s;box-shadow:4px 4px 0 var(--ink)}
.lk a:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.lk-kind{font:900 11px var(--mono);letter-spacing:.3em;color:var(--shu)}
.lk strong{font-size:20px;font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.lk strong.mono{font-size:16px}
.lk-desc{font-size:13.5px;color:var(--ink2)}
.lk-url{font-size:12px;color:var(--ink3)}
.lk-go{position:absolute;right:16px;top:12px;font-weight:900;font-size:18px}
.meishi a{min-height:150px;background-image:linear-gradient(90deg,var(--pink) 0 6px,transparent 6px)}
.meishi a::after{content:"零";position:absolute;right:16px;bottom:14px;width:34px;height:34px;display:grid;place-items:center;border:2px solid var(--shu);border-radius:50%;color:var(--shu);font:900 17px/1 var(--mincho);transform:rotate(-10deg);-webkit-mask:var(--grunge);mask:var(--grunge)}
.meishi strong{margin-top:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.lk-game a{background:var(--mint);transform:rotate(-.8deg);padding:22px 20px 18px}
.lk-game strong{font-size:24px}
.lk-game .lk-kind,.lk-game .lk-desc,.lk-game .lk-url{color:var(--ink)}
.lk-game .lk-go{position:static;align-self:flex-start;margin-top:8px;background:var(--ink);color:var(--washi);padding:6px 14px;border-radius:4px;font-size:15px}
.lk-game a::before{content:"";position:absolute;top:-8px;left:50%;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffc2cd,var(--pink) 60%,var(--shu));box-shadow:1px 2px 2px rgba(0,0,0,.3)}

/* footer */
.foot{margin-top:40px;padding:40px 0 90px;border-top:4px solid var(--ink);background:var(--paper);font-size:14px;position:relative;overflow:hidden}
.foot p{max-width:40em;font-weight:700}
.foot-share{margin-top:14px}
.foot-share .btn{white-space:normal}
.foot-credit{margin-top:10px;font-size:12.5px;color:var(--ink2)}
.foot-draft{color:var(--ink3);margin-top:6px;font-size:12.5px}
.foot-c{margin-top:18px;font:700 12px var(--mono);color:var(--ink3)}
.foot{overflow:visible}
.foot-seal{position:absolute;right:var(--pad);top:-50px;background:var(--paper);width:92px;height:92px;display:grid;place-items:center;border:4px solid var(--shu);border-radius:50%;color:var(--shu);font:900 48px/1 var(--mincho);transform:rotate(-12deg);-webkit-mask:var(--grunge);mask:var(--grunge)}
.preview-badge{position:fixed;left:10px;bottom:10px;z-index:30;font:900 11px var(--gothic);letter-spacing:.08em;background:var(--shu);color:#fff;padding:5px 10px;border-radius:4px;box-shadow:2px 2px 0 var(--ink)}

/* ≥ 640 */
@media (min-width:640px){
  .cards{grid-template-columns:1fr 1fr}
  .link-grid{grid-template-columns:1.3fr 1fr 1fr}
  .board-grid{grid-template-columns:1fr 1fr 1.2fr}
  .board-grid .rev{grid-column:auto}
  .cells{grid-template-columns:repeat(8,1fr) 1.6fr}
  .cell-boss{grid-column:auto;flex-direction:column}
  .cell-boss .cell-role{width:100%;border-right:0;border-bottom:1px solid var(--ink);align-self:auto;display:block}
  .stamp-rect{font-size:12.5px;padding:5px 4px;letter-spacing:0;writing-mode:vertical-rl;white-space:nowrap;line-height:1}
  .sticker{width:128px;height:128px;right:-14px;top:-34px}
  .sticker b{font-size:38px}
}
/* ≥ 1024 */
@media (min-width:1024px){
  body{font-size:16.5px}
  .masthead{padding-top:18px}
  .hero{padding:34px 0 40px}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) auto;grid-template-areas:"copy doc tate" "cta doc tate";grid-template-rows:auto 1fr;gap:26px 40px;align-items:center}
  .ctas{align-self:start;margin-top:0}
  .hero-doc{margin-top:40px}
  .ringi{padding:24px 22px 18px}
  .ringi-title{font-size:26px}
  .ringi-rows dd{font-size:15px}
  .stamp:not(.stamp-rect){width:46px;height:46px;font-size:19px}
  .stamp-2{font-size:13px}
  .cell{min-height:92px}
  .cells{grid-template-columns:repeat(8,1fr) 1.25fr}
  .ringi-rows div{grid-template-columns:3.6em 1fr}
  .cell-role{font-size:11px}
  .cells .cell-boss{grid-column:auto}
  .tate{font-size:min(6.6vw,calc((100vh - 200px) / 9.6),104px);align-self:start}
  .h1{font-size:clamp(44px,4.1vw,60px)}
  .hero-copy{padding-top:0}
  .cards{grid-template-columns:repeat(4,1fr)}
  .sec{padding:96px 0 40px}
  .sec-tate{display:block}
  .sec-head{padding-right:40px}
  .notebook{padding:26px 26px 26px 48px}
  .notebook::before{left:30px}
  .days{columns:2;column-gap:48px;column-rule:1px dashed var(--line)}
  .entry,.day-h{break-inside:avoid}
  .day-h{break-after:avoid}
  .entry p{font-size:15px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ticker{overflow-x:auto}
  .ticker-track{animation:none}
  .ticker-track[aria-hidden]{display:none}
  .js .ringi .stamp,.js .ringi.is-in .stamp,.js .sticker{animation:none;opacity:1}
  .js .reveal{opacity:1;transform:none;transition:none}
  .tate,.progress{animation:none}
  .btn,.lk a,.nav a{transition:none}
}
@media (forced-colors:active){.stamp,.mini-stamp,.logo,.draft,.foot-seal{-webkit-mask:none;mask:none}}

/* office: manager (クロ) shown separately from the 7 AI staff */
.grp-h{display:flex;align-items:center;gap:12px;margin:26px 0 14px;font-size:15px;font-weight:900;letter-spacing:.12em}
.grp-h::after{content:"";flex:1;height:0;border-top:1.5px dashed var(--ink);opacity:.45}
.grp-mgr{margin-top:6px}
.cards-mgr .idcard-mgr{border-width:2.5px;box-shadow:6px 6px 0 var(--shu)}
@media (min-width:640px){.cards-mgr{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.cards-mgr{grid-template-columns:repeat(4,1fr)}.cards-mgr .idcard-mgr{grid-column:span 2}}
