/* YourStory 共通スタイル：白地＋墨、差し色はコーラル1色、グラデーションは「物語」の文字だけ */
:root{
  --bg:#FFFFFF; --paper:#FAF8F5; --tint:#F4F3F7; --ink:#1C1C21; --sub:#5F5F68; --mute:#9A9AA3; --line:#E6E6EC;
  --coral:#E9604F; --coral-t:#FDEEEB; --lav:#7C6CF0; --lav-t:#F0EEFE; --on-accent:#FFFFFF;
  --grad:linear-gradient(90deg,#F2795F,#E36A9C,#8A7CF2);
  --f-body:"Noto Sans JP",system-ui,-apple-system,"Hiragino Sans",sans-serif;
  --f-disp:"Zen Maru Gothic","Noto Sans JP",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
html,body{margin:0}
*{box-sizing:border-box}
img,video{max-width:100%;display:block}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit}
.in{max-width:1120px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* nav */
nav.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
nav.top.scrolled{border-bottom-color:var(--line)}
nav.top .in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
nav.top img{height:60px;width:auto}
@media (max-width:640px){nav.top img{height:52px}}
nav.top .links{display:flex;align-items:center;gap:22px;font-size:14px}
nav.top .links a:not(.btn){text-decoration:none;color:var(--sub)}
nav.top .links a:not(.btn):hover{color:var(--ink)}
@media (max-width:640px){nav.top .links a:not(.btn){display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:700;text-decoration:none;border:none;border-radius:999px;padding:14px 28px;background:var(--coral);color:var(--on-accent);font-size:15px;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px var(--coral)}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn.sm{padding:9px 18px;font-size:13px}
.btn.ghost{background:transparent;color:var(--sub);border:1.5px solid var(--line);font-weight:500}
.btn.ghost:hover{box-shadow:none;color:var(--ink);border-color:var(--ink)}
.btn.dark{background:var(--ink);color:var(--bg)}
.btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
:focus-visible{outline:3px solid var(--lav);outline-offset:3px}

/* type */
.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--coral);font-weight:700;text-transform:uppercase}
.h2{font-family:var(--f-disp);font-size:clamp(26px,3.8vw,38px);line-height:1.4;margin:10px 0 32px;text-wrap:balance;font-weight:700}

/* video frame */
.frame{position:relative;border-radius:16px;overflow:hidden;background:var(--tint)}
.frame video,.frame img{width:100%;height:100%;object-fit:cover}
/* 縦の動画は切らずに全体を見せ、左右はぼかした同じ絵で埋める */
.frame.v{background:#1c1c21}
.frame.v .bg{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;filter:blur(22px) brightness(.8) saturate(1.1)}
.frame.v video{position:relative;object-fit:contain}
.rec{position:absolute;left:12px;top:10px;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:#fff;display:flex;align-items:center;gap:6px;text-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none}
.rec i{width:7px;height:7px;border-radius:50%;background:#FF4D3D;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* tags */
.tag{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--lav-t);color:var(--lav);white-space:nowrap}

/* reveal on scroll: only elements below the first screen get .pre, so nothing above the fold waits */
.reveal.pre{opacity:0;transform:translateY(24px)}
.reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}

footer.site{padding-block:32px;font-size:13px;color:var(--mute);border-top:1px solid var(--line)}
footer.site .in{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
footer.site img{height:44px;width:auto;opacity:.75}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal.pre{opacity:1;transform:none}
}

/* 見本の全編を見るボタンと、全編を流す画面 */
.play{position:absolute;left:10px;bottom:10px;z-index:2;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:700;line-height:1;color:#fff;background:rgba(28,28,33,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:none;border-radius:999px;padding:7px 12px 7px 9px;cursor:pointer;transition:background .2s,transform .2s var(--ease)}
.play:hover{background:var(--coral);transform:translateY(-1px)}
.play::before{content:"";width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor}
.play small{font-weight:500;opacity:.8;font-size:11px}
.pick{position:absolute;left:10px;top:10px;z-index:2;font-size:11px;font-weight:700;color:#fff;background:var(--coral);border-radius:999px;padding:3px 10px;box-shadow:0 4px 12px -4px rgba(233,96,79,.7);pointer-events:none}
dialog.player{border:none;padding:0;background:transparent;max-width:min(1100px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px);overflow:visible;color:#fff}
dialog.player::backdrop{background:rgba(14,14,18,.86);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.player .pl-in{display:flex;flex-direction:column;align-items:center;gap:12px}
.player video{max-width:100%;max-height:calc(100dvh - 150px);border-radius:12px;background:#000;width:auto}
.player.h video{width:100%}
.player .pl-bar{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.player.v .pl-bar{max-width:520px}
.player .pl-t b{display:block;font-size:16px;line-height:1.4}
.player .pl-t span{font-size:12px;color:rgba(255,255,255,.7)}
.player .pl-x{position:absolute;top:-6px;right:-6px;width:40px;height:40px;border-radius:50%;border:none;background:#fff;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;z-index:3;box-shadow:0 6px 18px -6px rgba(0,0,0,.6)}
@media (max-width:640px){.player .pl-x{top:-48px;right:0}dialog.player{margin-top:60px}}
