:root{--background:40 50% 95%;--foreground:36 13% 9%;--card:0 0% 100%;--card-foreground:36 13% 9%;--popover:40 50% 95%;--popover-foreground:36 13% 9%;--primary:5 56% 31%;--primary-foreground:40 50% 95%;--secondary:40 35% 90%;--secondary-foreground:36 13% 9%;--accent:38 38% 55%;--accent-foreground:36 13% 9%;--muted:40 25% 88%;--muted-foreground:36 8% 35%;--destructive:5 56% 31%;--destructive-foreground:40 50% 95%;--border:38 25% 75%;--input:38 25% 75%;--ring:5 56% 31%;--radius:2px;--paper:#faf6ee;--paper-2:#f3eddf;--paper-3:#e7dfcb;--ink:#1a1814;--ink-2:#2a2620;--ink-3:#3a352d;--rule:#d9cfb9;--rule-2:#b8b0a0;--oxblood:#7c2a22;--gilt:#b89b5e;--sage:#6e7e5f}*{box-sizing:border-box}*,:before,:after{border-color:var(--rule)}html,body{margin:0;padding:0}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans), Geist, ui-sans-serif, system-ui, sans-serif;font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}html:lang(ja){font-family:Noto Sans JP,sans-serif}:lang(ja){font-feature-settings:"palt" 1, "pkna" 1;font-kerning:normal}:lang(ja) .font-display,:lang(ja).font-display{font-family:"Noto Sans JP", var(--font-display), serif;font-feature-settings:"palt" 1, "pkna" 1;letter-spacing:0}:lang(ja) .font-italic,:lang(ja).font-italic{font-family:"Noto Sans JP", var(--font-italic), serif;letter-spacing:0;font-style:normal;font-weight:500}:lang(ja) p,:lang(ja) li{line-height:1.85}:lang(ja) h1,:lang(ja) h2,:lang(ja) h3{letter-spacing:-.005em;line-height:1.25}:lang(ja) .tracking-kicker{letter-spacing:.08em}:lang(ja) .tracking-meta{letter-spacing:.06em}:lang(ja) .tracking-wide{letter-spacing:.04em}:lang(ja) .tcy{text-combine-upright:all;-webkit-text-combine:horizontal}body{background-color:var(--paper);min-height:100vh;color:var(--ink);background-image:radial-gradient(1200px 600px at 12% -10%,#b89b5e1a,#0000 60%),radial-gradient(900px 600px at 110% 30%,#7c2a220f,#0000 60%);background-attachment:fixed}body:before{content:"";opacity:.1;pointer-events:none;mix-blend-mode:multiply;z-index:1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.09  0 0 0 0 0.08  0 0 0 0.30 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:fixed;inset:0}body>*{z-index:5;position:relative}::selection{background:var(--oxblood);color:var(--paper)}a{color:inherit;text-decoration:none}html{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><circle cx='7' cy='7' r='2.5' fill='none' stroke='%23FAF6EE' stroke-width='2.5'/><line x1='7' y1='1' x2='7' y2='13' stroke='%23FAF6EE' stroke-width='2.5'/><line x1='1' y1='7' x2='13' y2='7' stroke='%23FAF6EE' stroke-width='2.5'/><circle cx='7' cy='7' r='2.5' fill='none' stroke='%231A1814' stroke-width='1'/><line x1='7' y1='1' x2='7' y2='13' stroke='%231A1814' stroke-width='1'/><line x1='1' y1='7' x2='13' y2='7' stroke='%231A1814' stroke-width='1'/></svg>") 7 7,default}:where(a,button,[role=button],summary,label[for],input[type=button],input[type=submit],input[type=reset],select),.cursor-pointer{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><circle cx='8' cy='8' r='3' fill='%23FAF6EE'/><line x1='8' y1='1' x2='8' y2='15' stroke='%23FAF6EE' stroke-width='2.5'/><line x1='1' y1='8' x2='15' y2='8' stroke='%23FAF6EE' stroke-width='2.5'/><circle cx='8' cy='8' r='3' fill='%237C2A22'/><line x1='8' y1='1' x2='8' y2='15' stroke='%237C2A22' stroke-width='1.25'/><line x1='1' y1='8' x2='15' y2='8' stroke='%237C2A22' stroke-width='1.25'/></svg>") 8 8,pointer}input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=tel],input[type=number],textarea,[contenteditable=true]{cursor:text}[disabled],button:disabled,.cursor-not-allowed{cursor:not-allowed}.font-display{font-family:var(--font-display), "Playfair Display", serif;font-feature-settings:"ss01", "ss02"}.font-italic{font-family:var(--font-italic), "Cormorant Garamond", serif;font-style:italic}.kicker{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--oxblood);font-size:11px}.foliorule{align-items:baseline;gap:12px;width:100%;display:inline-flex}.foliorule>.num{font-family:var(--font-display), serif;color:var(--ink);font-size:14px;font-weight:700}.foliorule>hr{background:var(--rule);border:0;flex:1;height:1px}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.font-inter,.font-gilroy{font-family:var(--font-sans), sans-serif}@page cert-portrait{size:A4 portrait;margin:12mm}@page cert-landscape{size:A4 landscape;margin:12mm}#certificate-sheet[data-orientation=portrait]{page:cert-portrait}#certificate-sheet[data-orientation=landscape]{page:cert-landscape}@media print{html,body{color:#1a1814!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important}body:before{display:none!important}body:has(.certificate-view)>:not(.certificate-view):not(script):not(style){display:none!important}.certificate-view{color:#1a1814!important;background:#fff!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}.certificate-view .cert-toolbar{display:none!important}.certificate-view .cert-stage{height:auto!important;display:block!important;position:static!important;overflow:visible!important}.certificate-view .cert-stage:before{display:none!important}.certificate-view .cert-stage>*{position:static!important}.certificate-view .cert-page-wrap{zoom:1!important;box-shadow:none!important;transform:none!important}}.cert-page{color:#1a1814;font-family:var(--font-sans), Geist, ui-sans-serif, system-ui, sans-serif;background:#fff;position:relative}.cert-page[data-orientation=portrait]{width:210mm;min-height:297mm}.cert-page[data-orientation=landscape]{width:297mm;min-height:210mm}.certificate-frame{background-color:#fffdf6;background-image:radial-gradient(circle at 50% 0,#b89b5e0a,#0000 60%),repeating-linear-gradient(45deg,#b89b5e06 0 1px,#0000 1px 6px);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:.5pt solid #b89b5e;flex-direction:column;width:100%;height:100%;padding:14mm 12mm 10mm;display:flex;position:relative}.cert-body{flex:1;min-height:0}.cert-body-primary,.cert-body-secondary{display:contents}.cert-page[data-orientation=landscape] .cert-body{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0 10mm;display:grid}.cert-page[data-orientation=landscape] .cert-body-primary,.cert-page[data-orientation=landscape] .cert-body-secondary{flex-direction:column;min-width:0;display:flex}.cert-corner{pointer-events:none;width:14mm;height:14mm;position:absolute}.cert-corner-tl{border-top:.75pt solid #7c2a22;border-left:.75pt solid #7c2a22;top:3mm;left:3mm}.cert-corner-tr{border-top:.75pt solid #7c2a22;border-right:.75pt solid #7c2a22;top:3mm;right:3mm}.cert-corner-bl{border-bottom:.75pt solid #7c2a22;border-left:.75pt solid #7c2a22;bottom:3mm;left:3mm}.cert-corner-br{border-bottom:.75pt solid #7c2a22;border-right:.75pt solid #7c2a22;bottom:3mm;right:3mm}.cert-masthead{justify-content:space-between;align-items:flex-end;gap:12mm;padding-bottom:6mm;display:flex}.cert-masthead-left{align-items:center;gap:6mm;display:flex}.cert-masthead-brand{line-height:1.1}.cert-masthead-wordmark{font-family:var(--font-display), "Playfair Display", serif;letter-spacing:-.01em;color:#1a1814;font-size:18pt}.cert-masthead-sub{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#6b6457;margin-top:1mm;font-size:7pt}.cert-masthead-right{text-align:right}.cert-masthead-kicker{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#7c2a22;font-size:7pt}.cert-masthead-title{font-family:var(--font-italic), "Cormorant Garamond", serif;color:#1a1814;margin-top:1mm;font-size:18pt;font-style:italic;line-height:1}.cert-masthead-no{font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;color:#6b6457;margin-top:2mm;font-size:8pt}.cert-rule{background:#1a1814;height:.75pt;margin:0 0 6mm;position:relative}.cert-rule:after{content:"";background:#b89b5e;height:.25pt;position:absolute;top:1.4mm;left:0;right:0}.cert-hero{grid-template-columns:60mm 1fr;align-items:center;gap:10mm;margin-bottom:8mm;display:grid}.cert-page[data-orientation=landscape] .cert-hero{flex-direction:column;align-items:stretch;gap:6mm;margin-bottom:0;display:flex}.cert-plate{aspect-ratio:4/5;background:#f3edda;border:.5pt solid #d9cfb9;width:60mm;position:relative}.cert-page[data-orientation=landscape] .cert-plate{aspect-ratio:5/4;width:100%;max-width:110mm;margin:0 auto}.cert-plate-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cert-plate-blank{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#b8b0a0;place-items:center;font-size:7pt;display:grid;position:absolute;inset:0}.cert-plate-tick{width:3mm;height:3mm;position:absolute}.cert-plate-tick-tl{border-top:.75pt solid #7c2a22;border-left:.75pt solid #7c2a22;top:-.5pt;left:-.5pt}.cert-plate-tick-tr{border-top:.75pt solid #7c2a22;border-right:.75pt solid #7c2a22;top:-.5pt;right:-.5pt}.cert-plate-tick-bl{border-bottom:.75pt solid #7c2a22;border-left:.75pt solid #7c2a22;bottom:-.5pt;left:-.5pt}.cert-plate-tick-br{border-bottom:.75pt solid #7c2a22;border-right:.75pt solid #7c2a22;bottom:-.5pt;right:-.5pt}.cert-hero-text{min-width:0}.cert-hero-kicker{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#7c2a22;font-size:7pt}.cert-hero-title{font-family:var(--font-italic), "Cormorant Garamond", serif;color:#1a1814;letter-spacing:-.005em;overflow-wrap:anywhere;margin:3mm 0;font-size:26pt;font-style:italic;font-weight:400;line-height:1.02}.cert-page[data-orientation=landscape] .cert-hero-title{text-align:center;margin:2mm 0;font-size:26pt}.cert-page[data-orientation=landscape] .cert-hero-text{text-align:center}.cert-page[data-orientation=landscape] .cert-hero-kicker{text-align:center;display:block}.cert-hero-title em{font-style:italic}.cert-hero-artist{font-family:var(--font-display), serif;color:#2a2620;font-size:14pt}.cert-hero-artist strong{font-weight:500}.cert-hero-year{font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;color:#6b6457;margin-top:2mm;font-size:8pt}.cert-section{-moz-column-break-inside:avoid;break-inside:avoid;border-top:.5pt solid #d9cfb9;margin-top:5mm;padding-top:3mm}.cert-page[data-orientation=landscape] .cert-section{margin-top:3mm;padding-top:2mm}.cert-page[data-orientation=landscape] .cert-body-secondary>.cert-section:first-child{border-top:0;margin-top:0;padding-top:0}.cert-section-title{font-family:var(--font-display), serif;color:#1a1814;align-items:baseline;gap:3mm;margin:0 0 3mm;font-size:13pt;font-weight:500;display:flex}.cert-section-num{font-family:var(--font-italic), serif;color:#7c2a22;font-size:11pt;font-style:italic}.cert-spec{grid-template-columns:1fr 1fr;gap:3mm 8mm;margin:0;display:grid}.cert-page[data-orientation=landscape] .cert-spec{grid-template-columns:1fr;gap:2.5mm 0}.cert-spec-row{min-width:0}.cert-spec-row dt{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#6b6457;font-size:7pt}.cert-spec-row dd{font-family:var(--font-display), serif;color:#1a1814;word-break:break-word;overflow-wrap:anywhere;margin:1mm 0 0;font-size:11pt}.cert-spec-row-mono dd{font-family:var(--font-mono), monospace;letter-spacing:.02em;font-size:9pt}.cert-attest-copy{font-family:var(--font-italic), "Cormorant Garamond", serif;color:#2a2620;max-width:130mm;margin:0 0 3mm;font-size:9.5pt;font-style:italic;line-height:1.4}.cert-signature{-moz-column-break-inside:avoid;break-inside:avoid;justify-content:space-between;align-items:flex-end;gap:12mm;margin-top:6mm;padding-top:6mm;display:flex;position:relative}.cert-signature-line{border-top:.5pt solid #1a1814;height:0;position:absolute;top:0;left:0;right:30mm}.cert-signature-cap{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#6b6457;font-size:7pt}.cert-stamp{margin-bottom:2mm;transform:rotate(-6deg)}.cert-onchain{-moz-column-break-inside:avoid;break-inside:avoid;background:#fffdf6;border:.5pt solid #b89b5e;margin-top:6mm;padding:4mm 5mm}.cert-onchain-head{justify-content:space-between;align-items:center;display:flex}.cert-onchain-kicker{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#7c2a22;font-size:7pt}.cert-onchain-chain{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;font-size:7pt}.cert-onchain-chain.is-mainnet{color:#6e7e5f}.cert-onchain-chain.is-testnet{color:#b89b5e}.cert-onchain-grid{grid-template-columns:1fr 30mm;align-items:center;gap:6mm;margin-top:4mm;display:grid}.cert-page[data-orientation=landscape] .cert-onchain{margin-top:4mm;padding:4mm 5mm}.cert-page[data-orientation=landscape] .cert-onchain-grid{grid-template-columns:1fr 24mm;gap:4mm}.cert-page[data-orientation=landscape] .cert-qr img{width:22mm;height:22mm}.cert-onchain-fields{grid-template-columns:1fr;gap:2mm;margin:0;display:grid}.cert-onchain-url{word-break:break-all;color:#7c2a22;font-size:8pt}.cert-qr{flex-direction:column;align-items:center;gap:2mm;display:flex}.cert-qr img{background:#fff;border:.5pt solid #d9cfb9;width:28mm;height:28mm}.cert-qr-cap{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#6b6457;font-size:6.5pt}.cert-colophon{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:#6b6457;border-top:.5pt solid #1a1814;justify-content:space-between;gap:6mm;margin-top:auto;padding-top:3mm;font-size:6.5pt;display:flex}.cert-colophon-url{text-align:center;word-break:break-all;color:#2a2620}@media print{.cert-section,.cert-onchain,.cert-signature{-moz-column-break-inside:avoid;break-inside:avoid}}