:root{--ink:#24363a;--paper:#f7f4ed;--leaf:#406b60;--line:#d8ded6;--muted:#607075}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;line-height:1.7}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #c46b33;outline-offset:3px}.skip{position:absolute;top:-60px;left:12px;background:#fff;padding:8px;z-index:10}.skip:focus{top:8px}.site-bar{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,5vw,80px);background:#fff;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-family:Georgia,serif;font-size:1.25rem;letter-spacing:.12em}.site-bar nav{display:flex;gap:20px;font-size:.85rem}.site-bar nav a{text-underline-offset:4px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--leaf);font-weight:700}.intro{padding:clamp(48px,7vw,100px) clamp(20px,7vw,110px) 55px;max-width:1400px;margin:auto}.intro h1{font-family:Georgia,'Yu Mincho',serif;font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.25;letter-spacing:.06em;margin:12px 0 24px}.intro p{max-width:740px}.notice{border-left:4px solid var(--leaf);background:#e9f0e8;padding:16px 20px;font-size:.88rem;margin-top:30px}.layout{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);gap:clamp(25px,5vw,70px);max-width:1400px;margin:auto;padding:0 clamp(20px,7vw,110px) 100px}.categories h2,.results h2{font-family:Georgia,'Yu Mincho',serif;font-size:1.35rem}.categories ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}.categories button{text-decoration:none;display:flex;justify-content:space-between;gap:12px;padding:9px 5px;border-bottom:1px solid var(--line);font-size:.85rem}.categories button:hover{color:var(--leaf)}.categories small{color:var(--muted)}.results-header{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);margin-bottom:25px}.results-header p{color:var(--muted);font-size:.82rem}.sample-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);background:#fff;box-shadow:0 18px 55px rgba(25,45,40,.07);overflow:hidden}.sample-card img{width:100%;height:100%;min-height:320px;object-fit:cover}.card-copy{padding:clamp(24px,4vw,52px)}.card-copy h3{font-family:Georgia,'Yu Mincho',serif;font-size:clamp(1.8rem,3vw,2.7rem);margin:4px 0 16px}.card-copy p{font-size:.92rem}.pill{display:inline-block;font-size:.72rem;border:1px solid var(--leaf);border-radius:100px;padding:3px 12px;color:var(--leaf)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;text-decoration:none;min-height:48px;padding:11px 22px;margin-top:15px;font-weight:700}.button:hover{background:var(--leaf)}.future{margin-top:42px;color:var(--muted);font-size:.88rem}.site-footer{border-top:1px solid var(--line);padding:30px clamp(20px,7vw,110px);display:flex;justify-content:space-between;gap:20px;font-size:.8rem}@media(max-width:850px){.layout{grid-template-columns:1fr}.categories ul{display:flex;overflow-x:auto;gap:10px}.categories li{flex:0 0 auto}.categories button{border:1px solid var(--line);border-radius:100px;padding:7px 12px}.sample-card{grid-template-columns:1fr}.sample-card img{height:290px;min-height:0}}@media(max-width:520px){.site-bar{align-items:flex-start}.site-bar nav{flex-direction:column;gap:4px;text-align:right}.sample-card img{height:230px}.results-header{align-items:start;gap:10px}.site-footer{display:block}}

.categories button{width:100%;background:transparent;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.categories button[aria-pressed="true"]{color:var(--leaf);font-weight:700}.categories button:focus-visible{outline:3px solid #c46b33;outline-offset:2px}.sample-card[hidden],.empty[hidden]{display:none}.empty{background:#fff;border:1px solid var(--line);padding:28px;font-size:.9rem}
.categories,.results{min-width:0}@media(max-width:850px){.categories ul{width:100%;max-width:100%}}

.screen-preview{display:block;position:relative;height:350px;overflow:hidden;background:#eee8dc}.screen-preview iframe{display:block;width:200%;height:700px;border:0;transform:scale(.5);transform-origin:top left;pointer-events:none}.screen-preview:after{content:"実画面プレビュー";position:absolute;left:14px;bottom:14px;background:rgba(36,54,58,.86);color:white;font-size:.7rem;padding:4px 9px;pointer-events:none}@media(max-width:850px){.screen-preview{height:270px}.screen-preview iframe{height:540px}}

.sample-card+.sample-card{margin-top:26px}

.special-sample{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(290px,.82fr);max-width:1400px;margin:0 auto 75px;padding:0 clamp(20px,7vw,110px);min-width:0}
.special-sample-photo{min-width:0;position:relative;min-height:390px;overflow:hidden;background:#d4c3ad}
.special-sample-photo img{display:block;width:100%;height:100%;min-height:390px;object-fit:cover;object-position:center 33%}
.special-sample-photo span{position:absolute;left:20px;bottom:18px;padding:7px 12px;background:rgba(24,35,37,.75);color:#fff;font:11px/1.4 Georgia,serif;letter-spacing:.14em}
.special-sample-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(28px,4vw,60px);background:#e9e0d4}
.special-sample-copy h2{font-family:Georgia,'Yu Mincho',serif;font-size:clamp(1.8rem,3vw,3rem);line-height:1.4;letter-spacing:.04em;margin:8px 0 20px}
.special-sample-copy p:not(.eyebrow){font-size:.95rem;line-height:1.9;max-width:32em}
.special-sample-copy .button{margin-top:22px}
.special-sample-copy small{display:block;font-size:.74rem;line-height:1.7;color:var(--muted);margin-top:18px}
@media(max-width:850px){.special-sample{grid-template-columns:1fr}.special-sample-photo,.special-sample-photo img{min-height:0;height:320px}.special-sample-copy{padding:30px}}
@media(max-width:520px){.special-sample{margin-bottom:50px}.special-sample-photo,.special-sample-photo img{height:230px}.special-sample-copy{padding:24px}.special-sample-copy h2{font-size:1.85rem}}
/* 日本語の句読点と行末を読みやすく整える */
h1,h2,h3,p{line-break:strict}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}

.card-title-line{display:block}
